include/algebramix/polynomial.hpp File Reference
#include <algebramix/polynomial_naive.hpp>
Go to the source code of this file.
Classes
Namespaces
Defines
- #define Polynomial_variant(C) polynomial_variant_helper<C>::PV
- #define Polynomial_multiply(C) polynomial_variant_helper<C>::PV
- #define TMPL_DEF template<typename C, typename V=typename Polynomial_variant(C) >
- #define TMPL template<typename C, typename V>
- #define TMPLK template<typename C, typename V, typename K>
- #define Format format<C>
- #define Vector vector<C>
- #define Polynomial polynomial<C,V>
- #define Polynomial_rep polynomial_rep<C,V>
- #define Abs_polynomial polynomial<Abs_type(C),V>
- #define Real_polynomial polynomial<Real_type(C),V>
- #define Center_polynomial polynomial<Center_type(C),V>
- #define Radius_polynomial polynomial<Radius_type(C),V>
- #define Lifted_polynomial polynomial<Lift_type(C)>
- #define Projected_polynomial polynomial<Project_type(C)>
- #define Reconstructed_polynomial polynomial<Reconstruct_type(C)>
Functions
- template<typename C , typename V > int deg (const polynomial< C, V > &P)
- template<typename C , typename V > int degree (const polynomial< C, V > &P)
- template<typename C , typename V > nat N (const polynomial< C, V > &P)
- template<typename C , typename V > C * seg (polynomial< C, V > &P)
- template<typename C , typename V > const C * seg (const polynomial< C, V > &P)
- template<typename C , typename V = typename matrix_variant_helper< C >::MV> class matrix_rep REP_STRUCT_1 (C)
- INDIRECT_IMPL_2 (polynomial, polynomial_rep, typename C, C, typename V, V) DEFINE_UNARY_FORMAT_2(polynomial) template< typename C
- template<typename C , typename V > format< C > CF (const polynomial< C, V > &P)
- template<typename C , typename V > vector< C > coefficients (const polynomial< C, V > &P)
- template<typename C , typename V > vector< C > coefficients (const polynomial< C, V > &P, nat b, nat e)
- STYPE_TO_TYPE (template< typename C, typename V >, scalar_type, polynomial< C, V >, C)
- STYPE_TO_TYPE (template< typename C, typename V >, monomial_type, polynomial< C, V >, nat)
- UNARY_RETURN_TYPE (template< typename C, typename V >, Re_op, polynomial< C, V >, polynomial< Real_type(C), V >)
- UNARY_RETURN_TYPE (template< typename C, typename V >, abs_op, polynomial< C, V >, polynomial< Abs_type(C), V >)
- UNARY_RETURN_TYPE (template< typename C, typename V >, center_op, polynomial< C, V >, polynomial< Center_type(C), V >)
- UNARY_RETURN_TYPE (template< typename C, typename V >, radius_op, polynomial< C, V >, polynomial< Radius_type(C), V >)
- UNARY_RETURN_TYPE (template< typename C, typename V >, lift_op, polynomial< C, V >, polynomial< Lift_type(C)>)
- UNARY_RETURN_TYPE (template< typename C, typename V >, project_op, polynomial< C, V >, polynomial< Project_type(C)>)
- UNARY_RETURN_TYPE (template< typename C, typename V >, reconstruct_op, polynomial< C, V >, polynomial< Reconstruct_type(C)>)
- template<typename T , typename F , typename TV , typename FV > void set_as (polynomial< T, TV > &r, const polynomial< F, FV > &p)
- template<typename C , typename V , typename T > void set_as (polynomial< C, V > &r, const T &x)
- template<typename Op , typename C , typename V > nat unary_hash (const polynomial< C, V > &p)
- template<typename C , typename V > iterator< C > iterate (const polynomial< C, V > &P)
- template<typename C , typename V > generic var (const polynomial< C, V > &P)
- template<typename C , typename V > void set_variable_name (const polynomial< C, V > &P, const generic &x)
- template<typename C , typename V > syntactic flatten (const polynomial< C, V > &P, const syntactic &v)
- template<typename C , typename V > syntactic flatten (const polynomial< C, V > &P)
- template<typename C , typename V > int val (const polynomial< C, V > &P)
- template<typename C , typename V > int sign (const polynomial< C, V > &P)
- template<typename C , typename V > int compare (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename Op , typename C , typename V > bool binary_test (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- TRUE_IDENTITY_OP_SUGAR (template< typename C, typename V >, polynomial< C, V >) EXACT_IDENTITY_OP_SUGAR(template< typename C
- template<typename C , typename V > polynomial< C, V > operator- (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > operator+ (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > polynomial< C, V > operator+ (const polynomial< C, V > &P, const C &c)
- template<typename C , typename V > polynomial< C, V > operator+ (const C &c, const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > big_add (const vector< polynomial< C, V > > &a)
- template<typename C , typename V > polynomial< C, V > operator- (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > polynomial< C, V > operator- (const polynomial< C, V > &P, const C &c)
- template<typename C , typename V > polynomial< C, V > operator- (const C &c, const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > operator* (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > polynomial< C, V > tmul (int d2, const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > polynomial< C, V > square (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > operator* (const polynomial< C, V > &P, const C &c)
- template<typename C , typename V > polynomial< C, V > operator* (const C &c, const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > big_mul (const vector< polynomial< C, V > > &a)
- template<typename C , typename V > polynomial< C, V > operator/ (const polynomial< C, V > &P, const C &c)
- template<typename C , typename V > polynomial< C, V > operator/ (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > polynomial< C, V > skew_div (const polynomial< C, V > &P, const C &c, bool left)
- template<typename C , typename V > polynomial< C, V > quo (const polynomial< C, V > &P, const C &c)
- template<typename C , typename V > polynomial< C, V > rem (const polynomial< C, V > &P, const C &c)
- template<typename C , typename V > polynomial< C, V > quo (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > polynomial< C, V > tquo (int d1, const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- Transposed quotient in the division in degree d1 by P2.
- template<typename C , typename V > polynomial< C, V > rem (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > bool divides (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > polynomial< C, V > rem (const polynomial< C, V > &P1, const polynomial< C, V > &P2, polynomial< C, V > &Q)
- Returns the remainder and stores the quotient in Q.
- template<typename C , typename V > polynomial< C, V > trem (int d1, const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- Transposed remainder in the division in degree d1 by P2.
- template<typename C , typename V > int pexponent (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > polynomial< C, V > pquo (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > polynomial< C, V > prem (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > polynomial< C, V > prem (const polynomial< C, V > &P1, const polynomial< C, V > &P2, polynomial< C, V > &Q)
- Returns the pseudo-remainder and stores the pseudo-quotient in Q.
- template<typename C , typename V > polynomial< C, V > operator/ (const C &c, const polynomial< C, V > &P)
- ARITH_SCALAR_INT_SUGAR (template< typename C, typename V >, polynomial< C, V >) template< typename C
- V C contents (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > primitive_part (const polynomial< C, V > &P, C &c)
- template<typename C , typename V > polynomial< C, V > primitive_part (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > gcd (const polynomial< C, V > &P1, const polynomial< C, V > &P2, polynomial< C, V > &U1, polynomial< C, V > &U2)
- template<typename C , typename V > polynomial< C, V > gcd (const polynomial< C, V > &P1, const polynomial< C, V > &P2, polynomial< C, V > &U1)
- template<typename C , typename V > polynomial< C, V > gcd (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > static vector< polynomial< C, V > > gcd (const polynomial< C, V > &p, const vector< polynomial< C, V > > &q)
- template<typename C , typename V > polynomial< C, V > lcm (const polynomial< C, V > &P1, const polynomial< C, V > &P2)
- template<typename C , typename V > polynomial< C, V > invert_modulo (const polynomial< C, V > &P, const polynomial< C, V > &Q)
- template<typename C , typename V > bool reconstruct (const polynomial< C, V > &P, const polynomial< C, V > &Q, nat k, polynomial< C, V > &Num, polynomial< C, V > &Den)
- template<typename C , typename V > void pade (const polynomial< C, V > &P, nat n, nat k, polynomial< C, V > &Num, polynomial< C, V > &Den)
- template<typename C , typename V , typename W > void minimal_polynomial_bis (polynomial< C, V > &p, const vector< C, W > &v)
- template<typename C , typename W > polynomial< C, typename
polynomial_variant_helper< C >
::PV > minimal_polynomial (const vector< C, W > &v)
- template<typename C , typename V > vector< polynomial< C, V > > subresultants (const polynomial< C, V > &P, const polynomial< C, V > &Q, vector< polynomial< C, V > > &co_P, vector< polynomial< C, V > > &co_Q)
- template<typename C , typename V > vector< polynomial< C, V > > subresultants (const polynomial< C, V > &P, const polynomial< C, V > &Q, vector< polynomial< C, V > > &co_P)
- template<typename C , typename V > vector< polynomial< C, V > > subresultants (const polynomial< C, V > &P, const polynomial< C, V > &Q)
- template<typename C , typename V > polynomial< C, V > subresultant (const polynomial< C, V > &P, const polynomial< C, V > &Q, int k, polynomial< C, V > &coP, polynomial< C, V > &coQ)
- template<typename C , typename V > polynomial< C, V > subresultant (const polynomial< C, V > &P, const polynomial< C, V > &Q, int k, polynomial< C, V > &coP)
- template<typename C , typename V > polynomial< C, V > subresultant (const polynomial< C, V > &P, const polynomial< C, V > &Q, int k)
- template<typename C , typename V > C resultant (const polynomial< C, V > &P, const polynomial< C, V > &Q)
- template<typename C , typename V > C discriminant (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > derive (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > derive (const polynomial< C, V > &P, const nat &order)
- template<typename C , typename V > polynomial< C, V > xderive (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > integrate (const polynomial< C, V > &P)
- template<typename C , typename V , typename K > polynomial< C, V > compose (const polynomial< C, V > &P1, const polynomial< K, V > &P2)
- template<typename C , typename V > polynomial< C, V > shift (const polynomial< C, V > &P, const C &sh)
- template<typename C , typename V > polynomial< C, V > shift (const polynomial< C, V > &P, int i)
- template<typename C , typename V , typename K > polynomial< C, V > q_difference (const polynomial< C, V > &P, const K &q)
- template<typename C , typename V > polynomial< C, V > dilate (const polynomial< C, V > &P, nat p)
- template<typename C , typename V > vector< polynomial< C, V > > rem (const polynomial< C, V > &p, const vector< polynomial< C, V > > &q)
- template<typename C , typename V > vector< polynomial< C, V > > prem (const polynomial< C, V > &p, const vector< polynomial< C, V > > &q)
- template<typename C , typename V > polynomial< C, V > annulator_bis (const vector< C > &x)
- template<typename C > polynomial< C, typename
polynomial_variant_helper< C >
::PV > annulator (const vector< C > &x)
- BINARY_RETURN_TYPE (template< typename C, typename V >, evaluate_op, polynomial< C, V >, C, C)
- template<typename C , typename V > C evaluate (const polynomial< C, V > &p, const C &x)
- template<typename C , typename V > bool is_evaluable (const polynomial< C, V > &p, const C &x, C &y)
- template<typename C , typename V > C eval (const polynomial< C, V > &p, const C &x)
- template<typename C , typename V > polynomial< C, V > tevaluate_bis (const C &v, const C &x, nat n)
- template<typename C > polynomial< C, typename
polynomial_variant_helper< C >
::PV > tevaluate (const C &v, const C &x, nat n)
- template<typename C , typename V > vector< C > evaluate (const polynomial< C, V > &p, const vector< C > &x)
- template<typename C , typename V > vector< C > eval (const polynomial< C, V > &p, const vector< C > &x)
- template<typename C , typename V > polynomial< C, V > tevaluate_bis (const vector< C > &v, const vector< C > &x, nat l)
- template<typename C > polynomial< C, typename
polynomial_variant_helper< C >
::PV > tevaluate (const vector< C > &v, const vector< C > &x, nat l)
- template<typename C , typename V > polynomial< C, V > interpolate_bis (const vector< C > &v, const vector< C > &x)
- template<typename C > polynomial< C, typename
polynomial_variant_helper< C >
::PV > interpolate (const vector< C > &v, const vector< C > &x)
- template<typename C , typename V > vector< C > tinterpolate (const polynomial< C, V > &p, const vector< C > &x)
- template<typename C , typename V > vector< polynomial< C, V > > expand (const polynomial< C, V > &p, const vector< C > &v, const vector< nat > &mu)
- template<typename C , typename V > polynomial< C, V > range (const polynomial< C, V > &P, nat start, nat end)
- template<typename C , typename V > polynomial< C, V > extract_mod (const polynomial< C, V > &P, nat k, nat p)
- template<typename C , typename V > polynomial< C, V > lshiftz (const polynomial< C, V > &P, const int &shift)
- template<typename C , typename V > polynomial< C, V > reverse (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > graeffe (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > invert_lo (const polynomial< C, V > &P, nat m)
- template<typename C , typename V > polynomial< C, V > invert_lo (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > invert_hi (const polynomial< C, V > &P)
- template<typename Op , typename C , typename V > polynomial< Unary_return_type(Op,
C), V > unary_map (const polynomial< C, V > &p)
- template<typename Op , typename C , typename V , typename X > polynomial< Binary_return_type(Op,
C, X), V > binary_map_scalar (const polynomial< C, V > &p, const X &x)
- template<typename Op , typename C , typename V > Unary_return_type (Op, C) big(const matrix<C
- V polynomial< C, V > copy (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< C, V > duplicate (const polynomial< C, V > &P)
- template<typename C , typename V > polynomial< Reconstruct_type(C)> reconstruct (const polynomial< C, V > &p)
- template<typename C , typename V , typename W > bool is_reconstructible (const polynomial< C, V > &p, polynomial< Reconstruct_type(C), W > &q)
- template<typename S1 , typename D , typename Fun > polynomial< D > map (const Fun &fun, const polynomial< S1 > &p1, const format< D > &fm)
- template<typename C , typename V > bool is_finite (const polynomial< C, V > &p)
- template<typename C , typename V > bool is_nan (const polynomial< C, V > &p)
- template<typename C , typename V > bool is_infinite (const polynomial< C, V > &p)
- template<typename C , typename V > bool is_fuzz (const polynomial< C, V > &p)
- template<typename C , typename V > bool is_reliable (const polynomial< C, V > &p)
- template<typename C , typename V > polynomial< C, V > change_precision (const polynomial< C, V > &P, xnat p)
- template<typename C , typename V > xnat precision (const polynomial< C, V > &p)
- template<typename C , typename V > xint exponent (const polynomial< C, V > &p)
- template<typename C , typename V > double magnitude (const polynomial< C, V > &p)
- template<typename C , typename V > polynomial< Abs_type(C), V > abs (const polynomial< C, V > &p)
- template<typename C , typename V > polynomial< Real_type(C), V > Re (const polynomial< C, V > &p)
- template<typename C , typename V > polynomial< Real_type(C), V > Im (const polynomial< C, V > &p)
- template<typename C , typename V > polynomial< C, V > conj (const polynomial< C, V > &p)
- template<typename C , typename V > polynomial< Center_type(C), V > center (const polynomial< C, V > &p)
- template<typename C , typename V > polynomial< Radius_type(C), V > radius (const polynomial< C, V > &p)
- template<typename C , typename V > polynomial< Center_type(C), V > lower (const polynomial< C, V > &p)
- template<typename C , typename V > polynomial< Center_type(C), V > upper (const polynomial< C, V > &p)
- template<typename C , typename V > polynomial< C, V > sharpen (const polynomial< C, V > &p)
- template<typename C , typename V , typename K > polynomial< C, V > blur (const polynomial< C, V > &p, const K &x)
Variables
- polynomial< C, V > COMPARE_SUGAR (template< typename C, typename V >, polynomial< C, V >) EQUAL_SCALAR_SUGAR(template< typename C
- polynomial< C, V > polynomial< C, V >
- polynomial< C, V > C COMPARE_SCALAR_SUGAR (template< typename C, typename V >, polynomial< C, V >, C) EQUAL_INT_SUGAR(template< typename C
- polynomial< C, V > C
polynomial< C, V > COMPARE_INT_SUGAR (template< typename C, typename V >, polynomial< C, V >) EQUAL_SCALAR_SUGAR_BIS(template< typename C
- polynomial< C, V > C
polynomial< C, V > C COMPARE_SCALAR_SUGAR_BIS (template< typename C, typename V >, polynomial< C, V >, C) template< typename C
Define Documentation
#define Abs_polynomial polynomial<Abs_type(C),V> |
#define Center_polynomial polynomial<Center_type(C),V> |
#define Lifted_polynomial polynomial<Lift_type(C)> |
#define Polynomial polynomial<C,V> |
#define Polynomial_multiply |
( |
C |
|
) |
polynomial_variant_helper<C>::PV |
#define Polynomial_rep polynomial_rep<C,V> |
#define Polynomial_variant |
( |
C |
|
) |
polynomial_variant_helper<C>::PV |
Definition at line 18 of file polynomial.hpp.
Referenced by implementation< polynomial_multiply, V, polynomial_quotient< W > >::mul(), implementation< polynomial_multiply, V, polynomial_modular< W > >::mul(), implementation< polynomial_multiply, V, polynomial_quotient< W > >::square(), and implementation< polynomial_multiply, V, polynomial_modular< W > >::square().
#define Projected_polynomial polynomial<Project_type(C)> |
#define Radius_polynomial polynomial<Radius_type(C),V> |
#define Real_polynomial polynomial<Real_type(C),V> |
#define Reconstructed_polynomial polynomial<Reconstruct_type(C)> |
#define TMPL template<typename C, typename V> |
#define TMPL_DEF template<typename C, typename V=typename Polynomial_variant(C) > |
#define TMPLK template<typename C, typename V, typename K> |
Definition at line 25 of file polynomial.hpp.
Referenced by mmx::access(), implementation< polynomial_evaluate, V, polynomial_naive >::evaluate(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::evaluate(), mmx::get_vector_format(), lshiftz_series_vector_rep< C, V, W >::next(), vector_series_rep< C, V, W >::next(), implementation< polynomial_evaluate, V, polynomial_naive >::tinterpolate(), and implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::tinterpolate().