00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00027 #ifndef _ARAGELI_algebrslt_hpp_
00028 #define _ARAGELI_algebrslt_hpp_
00029
00030 #include "config.hpp"
00031
00032
00033
00034
00035 namespace Arageli
00036 {
00037
00038
00040 template
00041 <
00042 typename PolyVec,
00043 typename SegVec,
00044 typename Rslt,
00045 typename P,
00046 typename Seg,
00047 typename F
00048 >
00049 void algebraic_func_rslt
00050 (
00051 const PolyVec& polyvec,
00052 SegVec segvec,
00053 Rslt rslt,
00054 P& p, Seg& seg,
00055 F f
00056 );
00057
00058
00059
00060 template
00061 <
00062 typename P1, typename Seg1,
00063 typename P2, typename Seg2,
00064 typename P3, typename Seg3
00065 >
00066 void algebraic_plus
00067 (
00068 const P1& p1, const Seg1& seg1,
00069 const P2& p2, const Seg2& seg2,
00070 P3& p3, Seg3& seg3
00071 );
00072
00073
00074
00075 template
00076 <
00077 typename P1, typename Seg1,
00078 typename P2, typename Seg2,
00079 typename P3, typename Seg3
00080 >
00081 void algebraic_minus
00082 (
00083 const P1& p1, const Seg1& seg1,
00084 const P2& p2, const Seg2& seg2,
00085 P3& p3, Seg3& seg3
00086 );
00087
00088
00089
00090 template
00091 <
00092 typename P1, typename Seg1,
00093 typename P2, typename Seg2,
00094 typename P3, typename Seg3
00095 >
00096 void algebraic_multiplies
00097 (
00098 const P1& p1, const Seg1& seg1,
00099 const P2& p2, const Seg2& seg2,
00100 P3& p3, Seg3& seg3
00101 );
00102
00103
00104
00105 template
00106 <
00107 typename P1, typename Seg1,
00108 typename P2, typename Seg2,
00109 typename P3, typename Seg3
00110 >
00111 void algebraic_divides
00112 (
00113 const P1& p1, const Seg1& seg1,
00114 const P2& p2, Seg2 seg2,
00115 P3& p3, Seg3& seg3
00116 );
00117
00118
00119 }
00120
00121
00122 #ifdef ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE
00123 #define ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_algebrslt
00124 #include "algebrslt.cpp"
00125 #undef ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_algebrslt
00126 #endif
00127
00128 #endif // #ifndef _ARAGELI_algebrslt_hpp_