algebrslt.hpp

Go to the documentation of this file.
00001 /*****************************************************************************
00002     
00003     algebrslt.hpp -- Generic polynomial operations on algebraic numbers
00004         represendes as a polynomial and a segment based on resultant.
00005 
00006     This file is a part of the Arageli library.
00007 
00008     Copyright (C) Nikolai Yu. Zolotykh, 1999--2006
00009     Copyright (C) Sergey S. Lyalin, 2005--2006
00010 
00011 *****************************************************************************/
00012 
00027 #ifndef _ARAGELI_algebrslt_hpp_
00028 #define _ARAGELI_algebrslt_hpp_
00029 
00030 #include "config.hpp"
00031 
00032 // REFERENCE ADDITIONAL HEADERS HERE
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, // source polynomials
00052     SegVec segvec, // source segments
00053     Rslt rslt, // source resultant
00054     P& p, Seg& seg, // the result: polynomial and segment where root is located
00055     F f // the function that is performing on the source algebraic numbers
00056 );
00057 
00058 
00059 // WARNING! TEMPORARY.
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 // WARNING! TEMPORARY.
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 // WARNING! TEMPORARY.
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 // WARNING! TEMPORARY.
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 } // namesapce Arageli
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_

Generated on Thu Aug 31 17:38:04 2006 for Arageli by  doxygen 1.4.7