polynomialRing.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00041 template<class TPolynomXY, class TRing>
00042 class PolynomialRing
00043 {
00044
00045 public :
00046
00047 typedef TPolynomXY PolynomXY;
00048
00049 typedef TRing RingType;
00050
00051
00052 const RingType & ring_ref_m;
00053
00054
00055 PolynomialRing(const RingType & ring);
00056
00060 TPolynomXY addInv (const TPolynomXY & polynom) const;
00061
00062 TPolynomXY* addInvReturnPtr (const TPolynomXY & polynom) const;
00063
00064 void addInvInPlace ( TPolynomXY & polynom) const;
00065
00071 TPolynomXY add( const TPolynomXY & polynom1,
00072 const TPolynomXY & polynom2 ) const;
00073
00074 TPolynomXY* addReturnPtr( const TPolynomXY & polynom1,
00075 const TPolynomXY & polynom2 ) const;
00076
00077 inline void addInPlace( TPolynomXY & polynom1,
00078 const TPolynomXY & polynom2) const;
00084 TPolynomXY scalarMultiply( const typename TPolynomXY::CoefficientType scalar,
00085 const TPolynomXY & polynom ) const;
00086
00087 inline void scalarMultiplyInPlace(const typename TPolynomXY::CoefficientType scalar,
00088 TPolynomXY & polynom ) const;
00089
00090 TPolynomXY* scalarMultiplyRetPtr( const typename TPolynomXY::CoefficientType scalar,
00091 const TPolynomXY & polynom ) const;
00097
00098
00099 template <class TPolynomXY_Type>
00100 void convertInPlace( TPolynomXY_Type & pxy) const ;
00101
00102
00103 template <class TPolynomXY_SRC_Type, class TPolynomXY_DEST_Type>
00104 static void copyPolynomWithGivenEpsPrecision(const TPolynomXY_SRC_Type & srcPol,
00105 TPolynomXY_DEST_Type & destPol, int epsPrecision);
00106
00109 };
00110
00111
00112 #include "polynomialRing.cpp"