Macaulay2 Engine
Loading...
Searching...
No Matches

◆ promoter()

template<typename SourceRing, typename TargetRing>
bool M2::RingPromoter::promoter ( const Ring * R,
const Ring * S,
const ring_elem fR,
ring_elem & resultS )

Definition at line 618 of file aring-glue.hpp.

622 {
623 assert(dynamic_cast<const ConcreteRing<SourceRing> *>(R) != 0);
624 assert(dynamic_cast<const ConcreteRing<TargetRing> *>(S) != 0);
625 const SourceRing &R1 =
626 dynamic_cast<const ConcreteRing<SourceRing> *>(R)->ring();
627 const TargetRing &S1 =
628 dynamic_cast<const ConcreteRing<TargetRing> *>(S)->ring();
629
630 typename SourceRing::Element fR1(R1);
631 typename TargetRing::Element gS1(S1);
632
633 R1.from_ring_elem(fR1, fR);
634 bool retval = mypromote(R1, S1, fR1, gS1);
635 if (retval) S1.to_ring_elem(resultS, gS1);
636 return retval;
637 }
bool mypromote(const RingR &R, const RingS &S, const typename RingR::ElementType &fR, typename RingS::ElementType &result_fS)

References M2::mypromote().