algebramix_doc 0.3
mmx Namespace Reference

Classes

Typedefs

Functions

Variables


Detailed Description

Cantor & Zassenhaus algorithm, as described in Chapter 14 of "Modern Computer Algebra" by von zur Gathen and Gerhard.


Typedef Documentation

typedef algebraic_number_extension<rational,ball<complex<floating<> > > > algebraic_complex_extension

Definition at line 61 of file algebraic_number.hpp.

Definition at line 65 of file algebraic_number.hpp.

Definition at line 63 of file algebraic_number.hpp.

typedef algebraic_number_extension<rational,ball<floating<> > > algebraic_real_extension

Definition at line 59 of file algebraic_number.hpp.


Function Documentation

matrix<Abs_type(C),V> mmx::abs ( const matrix< C, V > &  m)

Definition at line 669 of file matrix.hpp.

{ return unary_map<abs_op> (m); }
polynomial<Abs_type(C),V> mmx::abs ( const polynomial< C, V > &  p)

Definition at line 1393 of file polynomial.hpp.

{ return unary_map<abs_op> (p); }
series<C,V> mmx::access ( const series< matrix< C, U >, V > &  f,
nat  i,
nat  j 
)
series<C,V> mmx::access ( const series< vector< C, W >, V > &  f,
nat  i 
)

Definition at line 66 of file series_vector.hpp.

References Series_rep.

                                       {
  return (Series_rep*) new vector_access_series_rep<C,V,W> (f, i);
}
series<C,V> mmx::acos ( const series< C, V > &  f) [inline]

Definition at line 65 of file series_elementary.hpp.

Referenced by GLUE_40(), and GLUE_55().

                       {
  return unary_recursive_series<acos_op> (f);
}
series<C,V> mmx::acos_init ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 70 of file series_elementary.hpp.

                                        {
  return unary_recursive_series<acos_op> (f, c);
}
nat mmx::aligned_size ( nat  r,
nat  c 
) [inline]

Definition at line 78 of file matrix_naive.hpp.

                            {
  return aligned_size<C,V> (r * c); }
polynomial< C > annihilator ( const algebraic_number_extension< C, Ball > &  ext,
const typename algebraic_number_extension< C, Ball >::El &  p 
)

Definition at line 355 of file algebraic_number.hpp.

References annihilator().

                                                 {
  return annihilator (ext.ext, p);
}
polynomial<C> mmx::annihilator ( const algebraic_extension< C > &  ext,
const typename algebraic_extension< C >::El &  p 
)

Definition at line 311 of file algebraic_extension.hpp.

References CF(), deg(), Element, N(), Polynomial, rem(), row(), row_echelon(), and square_free().

                                                     {
  nat n= deg (ext.mp);
  matrix<C> m (promote (0, CF(ext)), n+1, n);
  Element pp= promote (1, CF(ext));
  for (nat i=0; i<=n; i++) {
    for (nat j=0; j<N(pp); j++) m (i, j)= pp[j];
    pp= rem (p * pp, ext.mp);
  }
  matrix<C> e, k;
  e= row_echelon (m, k);
  for (nat i=0; i<=n; i++) {
    bool ok= true;
    for (nat j=0; j<n; j++)
      if (e (i, j) != 0) ok= false;
    if (ok) return square_free (Polynomial (row (k, i)));
  }
  ERROR ("unexpected situation");
}
polynomial<C> mmx::annihilator ( const algebraic< C, Extension > &  a) [inline]

Definition at line 176 of file algebraic.hpp.

References field(), and value().

Referenced by annihilator(), GLUE_3(), GLUE_35(), GLUE_6(), is_zero(), normalize(), and sign().

                                 {
  return annihilator (field (a), value (a));
}
polynomial<C,typename polynomial_variant_helper< C >::PV > mmx::annulator ( const vector< C > &  x) [inline]

Definition at line 1126 of file polynomial.hpp.

Referenced by implementation< polynomial_evaluate, V, polynomial_naive >::annulator(), GLUE_34(), GLUE_42(), and GLUE_93().

                            {
  return annulator_bis<C,typename Polynomial_variant(C) > (x);
}
polynomial<C,V> mmx::annulator_bis ( const vector< C > &  x) [inline]

Definition at line 1120 of file polynomial.hpp.

                                {
  typedef implementation<polynomial_evaluate,V> Pol;
  return Pol::template annulator<Polynomial> (x);
}
mmx::ARITH_SCALAR_INT_SUGAR ( template< typename C, typename V ,
polynomial< C, V  
)
mmx::ARITH_SCALAR_INT_SUGAR ( template< typename C, typename Extension >  ,
algebraic< C, Extension >   
)
mmx::ARITH_SCALAR_INT_SUGAR ( template< typename NT, typename DT >  ,
quotient< NT, DT >   
)
mmx::ARITH_SCALAR_INT_SUGAR ( template< typename Series, typename Monomial >  ,
quotient_series< Series, Monomial >   
)
mmx::ARITH_SCALAR_INT_SUGAR ( template< typename C, typename V ,
series< C, V  
)
Ball mmx::as_ball ( const algebraic< C, algebraic_number_extension< C, Ball > > &  a)

Definition at line 218 of file algebraic_number.hpp.

References eval(), field(), and value().

Referenced by mmx_ball().

                                       {
  return eval (field (a), value (a));
}
matrix<C> mmx::as_matrix ( const permutation &  p,
const format< C > &  fm = format<C> () 
)

Definition at line 1003 of file matrix.hpp.

References N().

Referenced by ldiv_mat_series_rep< C, V, W, U >::initialize(), ldiv_mat_mat_series_rep< C, V, U >::initialize(), ldiv_sc_mat_mat_series_rep< C, V, U, UU >::initialize(), ser_ldiv_mat_mat(), ser_ldiv_sc_mat_mat(), solve_lde(), and solve_lde_init().

                                                              {
  nat n= N(p);
  matrix<C> m (promote (0, fm), n, n);
  for (nat i=0; i<n; i++)
    for (nat j=0; j<n; j++)
      m (i, j) = promote (i == p (j) ? 1 : 0, fm);
  return m;
}
matrix< series<C,V> ,U> mmx::as_matrix ( const series< matrix< C, U >, V > &  f)

Definition at line 65 of file series_matrix.hpp.

References access(), cols(), Matrix_series, rows(), and Series.

                                   {
  nat nr= rows (f[0]), nc= cols (f[0]);
  Matrix_series m (Series (0), nr, nc);
  for (nat i=0; i<nr; i++)
    for (nat j=0; j<nc; j++)
      m (i, j)= access (f, i, j);
  return m;
}
polynomial< modular<modulus<C,U1>,U2> ,typename polynomial_carry_variant_helper< modular<modulus<C,U1>,U2> >::PV> mmx::as_p_expansion ( const Lift_type(modular< modulus< C, U1 >, U2 >)&  a,
const modulus< C, U1 > &  p 
)

Definition at line 57 of file p_expansion.hpp.

References Base_transformer_unsigned, C, direct_base(), M, N(), and V.

                                                                {
  typedef typename polynomial_carry_variant_helper<M>::PV V;
  typedef typename Base_transformer_unsigned(Lift_type (M),C) Baser;
  Baser baser (* p);
  M::set_modulus (p);
  vector<C> x; direct_base (x, a, baser);
  nat n= N(x), l= aligned_size<M,V> (N(x));
  M* c= mmx_new<M> (l);
  for (nat i= 0; i < n; i++) c[i]= M (x[i], true);
  format<M> fm; // FIMXE: which format should be taken here?
  return polynomial<M,V> (c, n, l, fm);
}
polynomial< modular< modulus< C >, modular_local > > as_polynomial_modular ( const polynomial< C > &  f,
const modulus< C > &  p 
)

Definition at line 15 of file glue_algebraic_generic.cpp.

                                                                        {
      modular<modulus<C>, modular_local>::set_modulus (p);
      return as<polynomial<modular<modulus<C>, modular_local> > > (f); }
series< vector<C,W> ,V> mmx::as_series ( const vector< series< C, V >, W > &  v)

Definition at line 123 of file series_vector.hpp.

                                   {
  return (series_rep<Vector,V>*) new vector_series_rep<C,V,W> (v);
}
vector< series<C,V> ,W> mmx::as_vector ( const series< vector< C, W >, V > &  f) [inline]

Definition at line 79 of file series_vector.hpp.

References as_vector(), and N().

                                   {
  return as_vector (f, N(f[0]));
}
series<C,V> mmx::asin ( const series< C, V > &  f) [inline]

Definition at line 75 of file series_elementary.hpp.

Referenced by GLUE_41(), and GLUE_56().

                       {
  return unary_recursive_series<asin_op> (f);
}
series<C,V> mmx::asin_init ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 80 of file series_elementary.hpp.

                                        {
  return unary_recursive_series<asin_op> (f, c);
}
series<C,V> mmx::atan ( const series< C, V > &  f) [inline]

Definition at line 85 of file series_elementary.hpp.

Referenced by GLUE_42(), and GLUE_57().

                       {
  return unary_recursive_series<atan_op> (f);
}
series<C,V> mmx::atan_init ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 90 of file series_elementary.hpp.

                                        {
  return unary_recursive_series<atan_op> (f, c);
}
matrix<Scalar,V> mmx::bareiss_coimage ( const matrix< Scalar, V > &  m)
Examples:
bareiss_test.cpp.

Definition at line 213 of file matrix_bareiss.hpp.

References bareiss_pivoting(), copy(), Matrix, nbcol(), and range().

                                  {
  //  ASSERT (is_non_scalar (m), "non-scalar matrix expected");

  Matrix c (copy (m));
  unsigned 
    //    nr=nbrow(c), 
    nc=nbcol(c), rk;
  bareiss_pivoting(c,rk);
  return range (c, 0, 0, rk, nc);
}
matrix<Scalar,V> mmx::bareiss_cokernel ( const matrix< Scalar, V > &  m)

Compute the cokernel of the matrix @ using Bareiss pivoting.

Examples:
bareiss_test.cpp.

Definition at line 170 of file matrix_bareiss.hpp.

References bareiss_extended_pivoting(), copy(), Matrix, nbrow(), and range().

                                   {
  //  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c (copy (m));
  unsigned nr =nbrow(c);//, nc = nbcol(c);;
  Matrix p =identity_matrix<Scalar>(nr);
  unsigned rk=0;
  bareiss_extended_pivoting(c,p,rk);
  return range (p, rk, 0, nr, nr);
}
Scalar mmx::bareiss_det ( const matrix< Scalar, V > &  m)
Examples:
bareiss_test.cpp.

Definition at line 226 of file matrix_bareiss.hpp.

References bareiss_pivoting(), copy(), Matrix, nbcol(), and nbrow().

                              {
  //  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  ASSERT (nbcol(m) == nbrow(m), "square matrix expected");
  Matrix c (copy (m));
  unsigned r;
  return bareiss_pivoting (c, r);
}
void mmx::bareiss_extended_pivoting ( matrix< Scalar, V > &  A,
matrix< Scalar, V > &  P,
unsigned &  r 
)

Bareiss method. The operations are performed inplace. The output value is the last element on the diagonal. If the matrix is invertible, it is its determinant. The rank is stored in rk.

Definition at line 94 of file matrix_bareiss.hpp.

References nbcol(), nbrow(), row_div(), rows_linsub(), and swap_row().

Referenced by bareiss_cokernel(), bareiss_extended_pivoting(), and bareiss_kernel().

{
  typedef unsigned size_t;
  r=0;
  size_t nr = nbrow(A), nc = nbcol(A);
  ASSERT(nbrow(A)==nbrow(P),"number of rows of A and P don't match");
  size_t i;//,j;
  int s = 1;
  Scalar d=1;// t;
  for(size_t k=0; k< min (nr, nc) && r < nr; k++) {
    for(i=r; i<nr && (A(i,k) == 0);i++);

    // for(j=i+1; j<nr; j++) {
//       if(A(j,k) !=0){// && size(A(j, k)) < size(A(i,k))){
//              i=j;
//       }
//     }
    if(i < nr) {
      if( i != r) {
        s *= -1;
        swap_row(A,i,r);
        //      swap_row(A,i,r,k,nc);
        swap_row(P,i,r);
        //      swap_row(P,i,r,0,nbcol(P));
        // for(j=k;j<nc;j++) { swap (A(i,j), A(r,j));   }
      }
      for(i = r+1;i<nr;i++) {
        rows_linsub(P,i,A(r,k),r,A(i,k));
        //      rows_combine(P,i,A(r,k),r,-A(i,k),0,nbrow(P),0,nbcol(P));
        rows_linsub(A,i,A(r,k),r,A(i,k));
        //      rows_combine(A,i,A(r,k),r,-A(i,k),0,nr,k+1,nc);

        A(i, k) = 0;
        row_div(A,d,i);
        row_div(P,d,i);

      }
      d= A(r, k);
      r++;
    }
  }
}
Scalar mmx::bareiss_extended_pivoting ( matrix< Scalar, V > &  A,
matrix< Scalar, V > &  P 
) [inline]

Definition at line 138 of file matrix_bareiss.hpp.

References bareiss_extended_pivoting().

{
  unsigned r=0; bareiss_extended_pivoting(A,P,r);
}
matrix<Scalar,V> mmx::bareiss_image ( const matrix< Scalar, V > &  m)
Examples:
bareiss_test.cpp.

Definition at line 200 of file matrix_bareiss.hpp.

References bareiss_pivoting(), Matrix, nbcol(), range(), and transpose().

Referenced by bareiss_krylov().

                                {
  //  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c = transpose(m);
  unsigned 
    //    nr=nbrow(c), 
    nc=nbcol(c), rk;

  bareiss_pivoting(c,rk);
  c = range (c, 0, 0, rk, nc);
  return transpose(c);
}
matrix<Scalar,V> mmx::bareiss_kernel ( const matrix< Scalar, V > &  m)

Compute the kernel of a matrix and output as a matrix which number of columns is the dimension of the kernel and its number of rows is the number of columns of @. It computes a triangulation of the transposed of @ based on Bareiss method.

See also:
bareiss_extended_pivoting
Examples:
bareiss_test.cpp.

Definition at line 186 of file matrix_bareiss.hpp.

References bareiss_extended_pivoting(), Matrix, nbrow(), range(), and transpose().

                                 {
  //  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c =transpose(m);
  unsigned nr =nbrow(c);//, nc = nbcol(c);
  Matrix p =identity_matrix<Scalar>(nr);
  unsigned rk=0;
  bareiss_extended_pivoting(c,p,rk);

  p = range (p, rk, 0, nr, nr);
  //  in_place_transpose(p);
  return transpose(p);
}
matrix<Scalar,V> mmx::bareiss_krylov ( const matrix< Scalar, V > &  m,
const matrix< Scalar, V > &  v 
)

Definition at line 236 of file matrix_bareiss.hpp.

References bareiss_image(), horizontal_join(), is_square_matrix(), Matrix, and nbrow().

                                                  {
  //  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  ASSERT (is_square_matrix (m), "square matrix expected");
  Matrix r= bareiss_image (v);
  Matrix p= m*r;
  while (true) {
    unsigned rk= nbrow (r);
    r= bareiss_image (horizontal_join (r, p));
    if (nbrow (r) <= rk) return r;
    p = m*p;
  }
}
Scalar mmx::bareiss_pivoting ( matrix< Scalar, V > &  A,
unsigned &  r 
)

Bareiss method. The operations are performed inplace. The output value is the last element on the diagonal. If the matrix is invertible, it is its determinant. The rank is stored in rk.

Examples:
bareiss_test.cpp.

Definition at line 35 of file matrix_bareiss.hpp.

References nbcol(), nbrow(), row_div(), rows_linsub(), and swap_row().

Referenced by bareiss_coimage(), bareiss_det(), bareiss_image(), bareiss_pivoting(), bareiss_rank(), and bareiss_triangulate().

{
  typedef unsigned size_t;
  r=0;
  size_t nr = nbrow(A), nc = nbcol(A);
  size_t i;//,j;
  int s = 1;
  Scalar d=1;// t;
  for(size_t k=0; k< min (nr, nc) && r < nr; k++) 
  {
    for(i=r; i<nr && ( A(i,k) == 0);i++);

    //  for(j=i+1; j<nr; j++) {
    //       if(A(j,k) !=0 && size(A(j, k)) < size(A(i,k))){
    //          i=j;
    //       }
    //   }
    if(i < nr) {
      if( i != r) {
        s *= -1;
        swap_row(A,i,r); 
        // swap_row(A,i,r,k,nc);
        // for(j=k;j<nc;j++) {swap (A(i,j), A(r,j));    }
      }
      for(i = r+1;i<nr;i++) {
        rows_linsub(A,i,A(r,k),r,A(i,k));
        // rows_combine(A,i,A(r,k),r,-A(i,k),0,nr,k+1,nc);
        row_div(A,d,i);
//      for(j=k+1;j<nc;j++) {
//        A(i,j) = (A(i,j)*A(r,k) - A(r,j)*A(i,k));
//        A(i,j) /= d;
//      }
        A(i, k) = 0;
      }
      d = A(r, k);
      r++;
    }
  }
  if(s==-1)
    return -A(nr-1,nc-1);
  else
    return  A(nr-1,nc-1);
}
Scalar mmx::bareiss_pivoting ( matrix< Scalar, V > &  A) [inline]

Definition at line 81 of file matrix_bareiss.hpp.

References bareiss_pivoting().

{
  unsigned rk=0; return bareiss_pivoting(A,rk);
}
unsigned mmx::bareiss_rank ( const matrix< Scalar, V > &  m)
Examples:
bareiss_test.cpp.

Definition at line 148 of file matrix_bareiss.hpp.

References bareiss_pivoting(), copy(), and Matrix.

                               {
  //  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c (copy (m));
  unsigned r;
  bareiss_pivoting (c, r); //0, 0, nbrow(c), nbcol(c));
  return r;
}
matrix<Scalar,V> mmx::bareiss_triangulate ( const matrix< Scalar, V > &  m)

Triangulate the matrix @ using Bareiss pivoting.

Definition at line 158 of file matrix_bareiss.hpp.

References bareiss_pivoting(), C, copy(), and Matrix.

{
  //  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  typedef Scalar C;
  Matrix c (copy (m));
  (void) bareiss_pivoting (c);
  return c;
}
bool mmx::better_pivot ( const C &  x1,
const C &  x2 
) [inline]

Definition at line 528 of file matrix_naive.hpp.

References pivot_helper< C >::better().

Referenced by reduce().

                                        {
  return pivot_helper<C>::better (x1, x2);
}
C mmx::big_add ( const matrix< C, V > &  m) [inline]
Examples:
vector_simd_test.cpp.

Definition at line 631 of file matrix.hpp.

Referenced by GLUE_32(), GLUE_50(), GLUE_77(), and implementation< polynomial_evaluate, V, polynomial_naive >::multi_rem().

{ return big<add_op> (m); }
polynomial<C,V> mmx::big_add ( const vector< polynomial< C, V > > &  a)

Definition at line 472 of file polynomial.hpp.

References C, CF(), Format, N(), Polynomial, and seg().

                                       {
  typedef implementation<polynomial_linear,V> Pol;
  nat i, k= N(a), n=0;
  nat l= aligned_size<C,V> (n);
  for (i=0; i<k; i++) n= max (N(a[i]), n);
  C* r= mmx_formatted_new<C> (l, CF (get_sample (CF (a))));
  Pol::set (r, 0, n);
  for (i=0; i<k; i++) Pol::add (r, seg (a[i]), N(a[i]));
  return Polynomial (r, n, l, Format (CF(a)));
}
C mmx::big_max ( const matrix< C, V > &  m) [inline]
Examples:
matrix_test.cpp.

Definition at line 633 of file matrix.hpp.

{ return big<max_op> (m); }
polynomial<C,V> mmx::big_mul ( const vector< polynomial< C, V > > &  a)
Examples:
polynomial_int_test.cpp, polynomial_integer_test.cpp, polynomial_modular_test.cpp, and polynomial_polynomial_test.cpp.

Definition at line 567 of file polynomial.hpp.

References N(), and seg().

Referenced by GLUE_31(), GLUE_49(), and GLUE_76().

                                       {
  typedef implementation<vector_linear,V> Vec;
  return Vec::template vec_unary_big_dicho<mul_op> (seg (a), N(a));
}
C mmx::big_sup ( const matrix< C, V > &  m) [inline]

Definition at line 632 of file matrix.hpp.

{ return big<sup_op> (m); }
matrix<Binary_return_type(Op,C1,C2),V> mmx::binary_map ( const matrix< C1, V > &  m,
const matrix< C2, V > &  n 
)

Definition at line 427 of file matrix.hpp.

References CF(), cols(), extend(), is_a_scalar(), is_non_scalar(), rows(), matrix< C, V >::scalar(), and tab().

                                                          {
  typedef implementation<vector_linear,V> Vec;
  typedef Binary_return_type(Op,C1,C2) T;
  format<T> fm= binary_map<Op> (CF(m), CF(n));
  if (is_a_scalar (m) || is_a_scalar (n)) {
    if (is_non_scalar (m)) return binary_map<Op> (m, extend (n, m));
    if (is_non_scalar (n)) return binary_map<Op> (extend (m, n), n);
    return matrix<T,V> (Op::op (m.scalar(), n.scalar()));
  }
  nat nrows= rows (m);
  nat ncols= cols (m);
  ASSERT (rows (n) == nrows, "unequal number of rows");
  ASSERT (cols (n) == ncols, "unequal number of columns");
  nat l= aligned_size<T,V> (nrows * ncols);
  T*  r= mmx_formatted_new<T> (l, fm);
  Vec::template vec_binary<Op> (r, tab (m), tab (n), nrows*ncols);
  return matrix<T,V> (r, nrows, ncols, fm);
}
matrix<Binary_return_type(Op,C,X),V> mmx::binary_map_scalar ( const matrix< C, V > &  m,
const X &  x 
)

Definition at line 448 of file matrix.hpp.

References C, CF(), cols(), is_a_scalar(), rows(), matrix< C, V >::scalar(), and tab().

                                                     {
  typedef implementation<vector_linear,V> Vec;
  typedef Binary_return_type(Op,C,X) T;
  format<T> fm= binary_map_scalar<C> (CF(m), x);
  if (is_a_scalar (m)) return matrix<T,V> (Op::op (m.scalar(), x));
  nat nrows= rows (m);
  nat ncols= cols (m);
  nat l= aligned_size<T,V> (nrows * ncols);
  T*  r= mmx_formatted_new<T> (l, fm);
  Vec::template vec_binary_scalar<Op> (r, tab (m), x, nrows*ncols);
  return matrix<T,V> (r, nrows, ncols, fm);
}
polynomial<Binary_return_type(Op,C,X),V> mmx::binary_map_scalar ( const polynomial< C, V > &  p,
const X &  x 
)

Definition at line 1321 of file polynomial.hpp.

References C, CF(), N(), and seg().

                                                         {
  typedef implementation<vector_linear,V> Vec;
  typedef Binary_return_type(Op,C,X) T;
  nat n= N(p);
  nat l= aligned_size<T,V> (n);
  format<T> fm= binary_map_scalar<Op> (CF(p), x);
  T* r= mmx_formatted_new<T> (l, fm);
  Vec::template vec_binary_scalar<Op> (r, seg (p), x, n);
  return polynomial<T,V> (r, n, l, fm);
}
series<M,V> mmx::binary_monoblock_series ( const series< M, V > &  f,
const series< M, V > &  g 
) [inline]

Definition at line 225 of file series_carry_blocks.hpp.

References Series_rep.

                                                           {
  typedef binary_monoblock_series_rep<Op,M,V,s,BV,t> Op_rep;
  return (Series_rep*) new Op_rep (f, g); }
series<C,V> mmx::binary_recursive_series ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 631 of file series.hpp.

References recursive(), Series, and Series_rep.

                                                           {
  typedef implementation<series_recursive_abstractions,V> Ser;
  typedef typename Ser::template binary_recursive_series_rep<Op,C,V> Binary;
  Series_rep* rep= new Binary (f, g);
  return recursive (Series (rep));
}
mmx::BINARY_RETURN_TYPE ( STMPL  ,
gaussian_op  ,
algebraic_real  ,
algebraic_real  ,
algebraic_number   
)
series<M,V> mmx::binary_scalar_recursive_monoblock_series ( const series< M, V > &  f,
const X &  x 
) [inline]
series<C,V> mmx::binary_scalar_recursive_series ( const series< C, V > &  f,
const X &  x 
) [inline]

Definition at line 639 of file series.hpp.

References recursive(), Series, and Series_rep.

Referenced by implementation< series_separable_root, U, series_carry_naive >::sep_root(), and implementation< series_pth_root_reg, U, series_carry_p_adic< W > >::unsep_root_reg().

                                                             {
  typedef implementation<series_recursive_abstractions,V> Ser;
  typedef typename Ser::
    template binary_scalar_recursive_series_rep<Op,C,V,X> Binary;
  Series_rep* rep= new Binary (f, x);
  return recursive (Series (rep));
}
series<C,V> mmx::binary_scalar_recursive_series ( const series< C, V > &  f,
const X &  x,
const C &  init 
) [inline]

Definition at line 648 of file series.hpp.

References recursive(), Series, and Series_rep.

                                                                            {
  typedef implementation<series_recursive_abstractions,V> Ser;
  typedef typename Ser::
    template binary_scalar_recursive_series_rep<Op,C,V,X> Binary;
  Series_rep* rep= new Binary (f, x, init);
  return recursive (Series (rep));
}
series<C,V> mmx::binary_scalar_series ( const series< C, V > &  f,
const X &  x 
) [inline]

Definition at line 536 of file series.hpp.

References Series_rep.

                                                   {
  typedef implementation<series_scalar_abstractions,V> Ser;
  typedef typename Ser::template binary_scalar_series_rep<Op,C,V,X>
    Binary_rep;
  return (Series_rep*) new Binary_rep (f, x);
}
series<C,V> mmx::binary_series ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 668 of file series.hpp.

References Series_rep.

                                                 {
  typedef implementation<series_abstractions,V> Ser;
  typedef typename Ser::template binary_series_rep<Op,C,V> Binary;
  return (Series_rep*) new Binary (f, g);
}
bool mmx::binary_test ( const matrix< C1, V > &  m,
const matrix< C2, V > &  n 
)

Definition at line 503 of file matrix.hpp.

References cols(), extend(), is_a_scalar(), is_non_scalar(), rows(), matrix< C, V >::scalar(), and tab().

                                                           {
  typedef implementation<vector_linear,V> Vec;
  if (is_a_scalar (m) || is_a_scalar (n)) {
    if (is_non_scalar (m)) return binary_test<Op> (m, extend (n, m));
    if (is_non_scalar (n)) return binary_test<Op> (extend (m, n), n);
    return Op::op (m.scalar(), n.scalar());
  }
  nat nrows= rows (m);
  nat ncols= cols (m);
  if (rows (n) != nrows || cols (n) != ncols) return false;
  return Vec::template vec_binary_test<Op> (tab (m), tab (n), nrows*ncols);
}
bool mmx::binary_test ( const series< C, V > &  f1,
const series< C, V > &  f2 
) [inline]

Definition at line 288 of file series.hpp.

                                                 {
  for (nat n=0; n< Series::get_cancel_order (); n++)
    if (Op::not_op (f1[n], f2[n])) return false;
  return true;
}
bool mmx::binary_test ( const unknown< C, V > &  c1,
const unknown< C, V > &  c2 
) [inline]

Definition at line 135 of file series_implicit.hpp.

                                         {
  if (Op::not_op (c1->b, c2->b)) return false;
  if (c1->i1 == c1->i2 || c2->i1 == c2->i2)
    return c1->i1 == c1->i2 && c2->i1 == c2->i2;
  if (Op::not_op (c1->f, c2->f)) return false;
  if (Op::not_op (c1->i1, c2->i1)) return false;
  if (Op::not_op (c1->i2, c2->i2)) return false;
  for (nat i= c1->i1; i<c1->i2; i++)
    if (Op::not_op (c1->s[i - c1->i1], c2->s[i - c1->i1]))
      return false;
  return true;
}
bool mmx::binary_test ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
) [inline]

Definition at line 380 of file polynomial.hpp.

References N().

                                                         {
  nat n1= N(P1), n2= N(P2), n= max (n1, n2);
  for (nat i=0; i<n; i++)
    if (Op::not_op (P1[i], P2[i])) return false;
  return true;
}
static nat mmx::bit_mirror ( nat  i,
nat  n 
) [static]
Examples:
fft_test.cpp.

Definition at line 29 of file fft_roots.hpp.

Referenced by roots_helper< CC, UU, SS >::create_roots().

                          {
  if (n == 1) return i;
  else return (bit_mirror (i & ((n>>1) -1), n>>1) << 1) + i / (n>>1);
}
polynomial<C,V> mmx::blur ( const polynomial< C, V > &  p,
const K &  x 
) [inline]

Definition at line 1408 of file polynomial.hpp.

                                                               {
  return binary_map_scalar<blur_op> (p, x); }
matrix<C,V> mmx::blur ( const matrix< C, V > &  m,
const K &  x 
) [inline]

Definition at line 684 of file matrix.hpp.

                                                       {
  return binary_map_scalar<blur_op> (m, x); }
matrix<C,V> mmx::blur ( const matrix< C, V > &  m,
const matrix< C2, V2 > &  n 
) [inline]

Definition at line 687 of file matrix.hpp.

                                               {
  return binary_map<blur_op> (m, n); }
series<C,V> mmx::blur ( const series< C, V > &  f,
const K &  x 
) [inline]

Definition at line 1203 of file series.hpp.

                                                       {
  return binary_map_scalar<blur_op> (f, x); }
static series<C,V> mmx::carry_add_rem ( const series< C, V > &  a,
const series< C, V > &  b,
series< C, V > &  q 
) [inline, static]

Definition at line 249 of file series_vector.hpp.

References as_vector().

Referenced by matrix_mul_quo().

                                                            {
  series<vector<C>,V> s= (series_rep<vector<C>,V> *)
    new carry_add_quorem_series_rep<C,V> (a, b);
  vector<Series> v= as_vector (s);
  q= v[0];
  return v[1];
}
static series<C,V> mmx::carry_mul_rem_series ( const C &  c,
const series< C, V > &  f,
series< C, V > &  q 
) [inline, static]

Definition at line 208 of file series_vector.hpp.

References as_vector().

Referenced by matrix_mul_quo().

                                                              {
  series<vector<C>,V> s= (series_rep<vector<C>,V> *)
    new carry_mul_quorem_series_rep<C,V,C> (c, f);
  vector<Series> v= as_vector (s);
  q= v[0];
  return v[1];
}
static series<C,V> mmx::carry_special_add ( const series< C, V > &  a,
const series< C, V > &  b,
const series< C, V > &  c 
) [inline, static]

Definition at line 285 of file series_vector.hpp.

References Series_rep.

Referenced by matrix_mul_quo().

                                                                      {
  return (Series_rep *) new carry_special_add_series_rep<C,V> (a, b, c);
}
polynomial<Center_type(C),V> mmx::center ( const polynomial< C, V > &  p)

Definition at line 1398 of file polynomial.hpp.

                                                    {
  return unary_map<center_op> (p); }
matrix<Center_type(C),V> mmx::center ( const matrix< C, V > &  m)

Definition at line 674 of file matrix.hpp.

Referenced by improve_zero().

                                            {
  return unary_map<center_op> (m); }
mmx::Center_type ( Ball  ) const

Referenced by improve_zero(), and increase_precision().

format<NT> mmx::CF ( const quotient< NT, DT > &  x) [inline]

Definition at line 99 of file quotient.hpp.

References numerator().

                                              {
  return get_format (numerator (x)); }
format<C> mmx::CF ( const series< C, V > &  f) [inline]

Definition at line 108 of file series.hpp.

{ return f->tfm (); }
format<C> mmx::CF ( const algebraic_extension< C > &  x) [inline]

Definition at line 54 of file algebraic_extension.hpp.

References CF().

{ return CF(*x); }
format<C> mmx::CF ( const algebraic< C, Extension > &  x) [inline]
Examples:
polynomial_int_test.cpp, polynomial_integer_test.cpp, polynomial_modular_test.cpp, and polynomial_polynomial_test.cpp.

Definition at line 93 of file algebraic.hpp.

Referenced by system_root_series_rep< M, V, W >::_ev_der(), annihilator(), implementation< polynomial_evaluate, V, polynomial_naive >::annulator(), as_vector(), big_add(), binary_map(), binary_map_scalar(), CF(), coefficients(), column(), column_echelon(), column_orthogonalization(), column_orthonormalization(), compose(), as_helper< polynomial< T, TV >, polynomial< F, FV > >::cv(), as_helper< matrix< T, TV >, matrix< F, FV > >::cv(), fast_helper< polynomial< C, V > >::dd(), fast_helper< matrix< C, V > >::dd(), decode_kronecker(), deflate(), delete_col(), delete_row(), derive(), det(), dilate(), direct_base(), direct_crt(), encode_kronecker(), implementation< polynomial_evaluate, V, polynomial_naive >::evaluate(), expand(), extract_mod(), implementation< polynomial_gcd, V, polynomial_ring_naive< W > >::gcd(), implementation< polynomial_gcd, V, polynomial_naive >::gcd(), gcd(), get_matrix_format(), get_vector_format(), graeffe(), hankel_matrix(), horizontal_join(), image(), truncate_mul_monoblock_series_rep< M, V, s, BV, t >::Increase_order(), integrate(), implementation< polynomial_evaluate, V, polynomial_naive >::interpolate(), invert(), invert_hi(), invert_lo(), is_reliable(), join(), kernel(), lshiftz(), lshiftz_series_matrix(), lshiftz_series_vector(), matrix< series< C, V >, U >::matrix(), matrix_mul_quo(), mul_matrix(), implementation< polynomial_evaluate, V, polynomial_naive >::multi_rem(), lshiftz_series_vector_rep< C, V, W >::next(), vector_series_rep< C, V, W >::next(), xderive_series_rep< C, V >::next(), derive_series_rep< C, V >::next(), normalize(), operator*(), operator+(), operator-(), operator/(), polynomial< series< C, V >, U >::operator[](), implementation< polynomial_gcd, V, polynomial_ring_naive< W > >::pade(), implementation< polynomial_gcd, V, polynomial_naive >::pade(), polynomial< series< C, V >, U >::polynomial(), pow_matrix(), pquo(), prem(), primitive_part(), q_difference(), quo(), range(), rec_cst(), rec_lin(), rem(), restrict(), resultant(), reverse(), root(), row(), row_matrix(), row_orthogonalization(), row_orthonormalization(), rshiftz(), implementation< series_separable_root, U, series_naive >::sep_root(), implementation< series_separable_root, U, series_carry_naive >::sep_root(), implementation< series_compose, U, series_naive >::ser_compose(), implementation< series_divide, U, series_naive >::ser_div(), implementation< series_divide, U, series_carry_naive >::ser_div(), implementation< series_divide, U, series_carry_monoblock< W, s, BV, t > >::ser_div(), ser_ldiv_mat(), ser_ldiv_mat_mat(), ser_ldiv_sc_mat(), ser_ldiv_sc_mat_mat(), implementation< series_multiply, U, series_relaxed< W > >::ser_mul(), implementation< series_multiply, U, series_naive >::ser_mul(), implementation< series_multiply, U, series_fast >::ser_mul(), implementation< series_multiply, U, series_carry_relaxed< W > >::ser_mul(), implementation< series_multiply, U, series_carry_lift< W > >::ser_mul(), implementation< series_multiply, U, series_carry_naive >::ser_mul(), implementation< series_multiply, U, series_carry_blocks< W, s, BV, t > >::ser_mul(), implementation< series_multiply, U, series_carry_monoblock< W, s, BV, t > >::ser_mul(), implementation< series_multiply, U, series_carry_modular_int_naive< W > >::ser_mul(), implementation< series_divide, U, series_naive >::ser_quo(), implementation< series_divide, U, series_naive >::ser_rdiv_sc(), implementation< series_divide, U, series_carry_naive >::ser_rdiv_sc(), implementation< series_divide, U, series_naive >::ser_rquo_sc(), implementation< series_divide, U, series_naive >::ser_rrem_sc(), implementation< series_divide, U, series_carry_naive >::ser_rrem_sc(), implementation< series_divide, U, series_carry_monoblock< W, s, BV, t > >::ser_rrem_sc(), implementation< series_multiply, U, series_relaxed< W > >::ser_truncate_mul(), implementation< series_multiply, U, series_naive >::ser_truncate_mul(), implementation< series_multiply, U, series_fast >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_relaxed< W > >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_lift< W > >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_naive >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_blocks< W, s, BV, t > >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_monoblock< W, s, BV, t > >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_modular_int_naive< W > >::ser_truncate_mul(), set_as(), shift(), shift1(), shift2(), skew_div(), sqrt(), square(), subresultant(), implementation< polynomial_subresultant_base, V, polynomial_naive >::subresultant_sequence(), subresultants(), tensor_matrix(), implementation< polynomial_evaluate, V, polynomial_naive >::tevaluate(), tmul(), toeplitz_matrix(), tquo(), transpose(), trem(), truncate(), unary_map(), implementation< series_map_as_abstractions, U, series_naive >::unary_map_as(), implementation< series_pth_root, U, series_carry_p_adic< W > >::unsep_root(), upgrade(), fast_helper< polynomial< C, V > >::uu(), fast_helper< matrix< C, V > >::uu(), vandermonde(), vertical_join(), binary_helper< polynomial< C, V > >::write(), binary_helper< matrix< C, V > >::write(), and xderive().

{ return CF(x.p); }
format<C> mmx::CF ( const polynomial< C, V > &  P) [inline]

Definition at line 191 of file polynomial.hpp.

{ return P->tfm (); }
format<C> mmx::CF ( const matrix< C, V > &  m) [inline]

Definition at line 183 of file matrix.hpp.

{ return m->tfm (); }
polynomial<C,V> mmx::change_precision ( const polynomial< C, V > &  P,
xnat  p 
) [inline]

Definition at line 1379 of file polynomial.hpp.

                                                                      {
  return binary_map_scalar<change_precision_op> (P, p); }
matrix<C,V> mmx::change_precision ( const matrix< C, V > &  m,
xnat  p 
) [inline]

Definition at line 655 of file matrix.hpp.

Referenced by change_precision_series_rep< C, V >::next().

                                                              {
  return binary_map_scalar<change_precision_op> (m, p); }
series<C,V> mmx::change_precision ( const series< C, V > &  f,
nat  p 
) [inline]

Definition at line 1192 of file series.hpp.

References Series_rep.

                                          {
  return (Series_rep*) new change_precision_series_rep<C,V> (f, p);
}
vector<C> mmx::coefficients ( const polynomial< C, V > &  P,
nat  b,
nat  e 
) [inline]

Definition at line 201 of file polynomial.hpp.

References CF().

                                                 {
  if (b >= e) return vector<C> ();
  vector<C> v (get_sample (CF(P)), e - b);
  for (nat i= 0; i < e - b; i++) v[i]= P[b+i];
  return v;
}
C mmx::cofactor ( const matrix< C, V > &  m,
nat  i,
nat  j 
) [inline]

Definition at line 1144 of file matrix.hpp.

References cols(), first_minor(), is_non_scalar(), and rows().

                                         {
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  ASSERT (cols(m) == rows(m), "square matrix expected");
  ASSERT (i < rows(m), "index out of range");
  ASSERT (j < cols(m), "index out of range");
  C c= first_minor (m, i, j);
  return ((i + j) & 1) ? -c : c;
}
void mmx::col_div ( matrix< C, V > &  m,
c,
nat  i 
)
void mmx::col_mul ( matrix< C, V > &  m,
c,
nat  i 
)

Definition at line 993 of file matrix.hpp.

{
nat mmx::cols ( const matrix< C, matrix_fixed< V, RS, CS > > &  m) [inline]

Definition at line 294 of file matrix.hpp.

References val().

{ return CS::val; }
nat cols ( const matrix< C, V > &  m) [inline]

Definition at line 179 of file matrix.hpp.

Referenced by matrix_iterator_rep< C, V >::advance(), as_matrix(), binary_map(), binary_map_scalar(), binary_test(), cofactor(), column_echelon(), column_orthogonalization(), column_orthonormalization(), column_reduced_echelon(), as_helper< matrix< T, TV >, matrix< F, FV > >::cv(), fast_helper< matrix< C, V > >::dd(), delete_col(), delete_row(), det(), binary_helper< matrix< C, V > >::disassemble(), extend(), first_minor(), flatten(), get_matrix_format(), GLUE_10(), GLUE_11(), GLUE_25(), GLUE_7(), GLUE_8(), horizontal_join(), image(), ldiv_mat_series_rep< C, V, W, U >::Increase_order(), ldiv_mat_mat_series_rep< C, V, U >::Increase_order(), ldiv_sc_mat_mat_series_rep< C, V, U, UU >::Increase_order(), matrix_series_rep< C, V, U >::Increase_order(), ldiv_mat_mat_series_rep< C, V, U >::initialize(), ldiv_sc_mat_mat_series_rep< C, V, U, UU >::initialize(), invert(), is_square_matrix(), kernel(), map(), matrix< series< C, V >, U >::matrix(), matrix_mul_quo(), matrix_new(), N(), nbcol(), matrix_series_rep< C, V, U >::next(), nullary_set(), operator!=(), matrix< series< C, V >, U >::operator()(), operator*(), operator<=(), operator==(), operator>=(), permute_columns(), permute_rows(), implementation< matrix_vectorial, V, matrix_naive >::print(), range(), rank(), REP_STRUCT_1(), reverse_cols(), row(), row_orthogonalization(), row_orthonormalization(), ser_ldiv_mat(), ser_ldiv_mat_mat(), ser_ldiv_sc_mat(), ser_ldiv_sc_mat_mat(), implementation< matrix_vectorial, V, matrix_naive >::set(), solve_lde(), swap_col(), swap_row(), implementation< matrix_vectorial, V, matrix_naive >::transpose(), transpose(), unary_hash(), unary_map(), unary_set(), unary_set_scalar(), fast_helper< matrix< C, V > >::uu(), vertical_join(), and binary_helper< matrix< C, V > >::write().

{ return m->nc; }
void mmx::cols_linsub ( matrix< C, V > &  m,
nat  i,
ci,
nat  j,
cj 
)

Definition at line 996 of file matrix.hpp.

{
vector<C> mmx::column ( const matrix< C, V > &  m,
nat  j 
)

Definition at line 922 of file matrix.hpp.

References CF(), and rows().

Referenced by GLUE_13(), GLUE_15(), GLUE_16(), GLUE_30(), and join().

                                {
  nat n= rows (m);
  nat l= default_aligned_size<C> (n);
  C*  a= mmx_formatted_new<C> (l, CF(m));
  for (nat i=0; i<n; i++) a[i]= m(i,j);
  return vector<C> (a, n, l, CF(m));
}
matrix<C,V> mmx::column_echelon ( const matrix< C, V > &  m,
bool  reduced = false 
)
Examples:
matrix_test.cpp.

Definition at line 1057 of file matrix.hpp.

References cols(), copy(), is_non_scalar(), Matrix, rows(), and tab().

Referenced by column_reduced_echelon(), GLUE_103(), GLUE_33(), GLUE_58(), and row_echelon().

                                                      {
  typedef implementation<matrix_echelon,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c= copy (m);
  C* k= NULL;
  Mat::col_echelon (tab(c), k, rows(m), cols(m), reduced);
  return c;
}
matrix<C,V> mmx::column_echelon ( const matrix< C, V > &  m,
matrix< C, V > &  k,
bool  reduced = false 
)

Definition at line 1084 of file matrix.hpp.

References CF(), cols(), copy(), is_non_scalar(), Matrix, rows(), and tab().

                                                                 {
  typedef implementation<matrix_echelon,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c= copy (m);
  k= Matrix (promote (0, CF(m)), cols(m), cols(m));
  Mat::col_echelon (tab(c), tab(k), rows(m), cols(m), false);
  return c;
}
matrix<C,V> mmx::column_orthogonalization ( const matrix< C, V > &  m,
matrix< C, V > &  l 
) [inline]

Definition at line 1245 of file matrix.hpp.

References CF(), cols(), copy(), is_non_scalar(), Matrix, rows(), seg(), and tab().

                                                      {
  typedef implementation<matrix_orthogonalization,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c= copy (m);
  vector<C> n (promote (0, CF(m)), cols(m));
  l= Matrix (promote (0, CF(m)), cols(m), cols(m));
  Mat::col_orthogonalize (tab(c), rows(m), cols(m), tab(l), seg(n));
  return c;
}  
matrix<C,V> mmx::column_orthogonalization ( const matrix< C, V > &  m) [inline]
Examples:
matrix_test.cpp.

Definition at line 1224 of file matrix.hpp.

References CF(), cols(), copy(), is_non_scalar(), Matrix, rows(), seg(), and tab().

                                           {
  typedef implementation<matrix_orthogonalization,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c= copy (m);
  vector<C> n (promote (0, CF(m)), cols(m));
  Mat::col_orthogonalize (tab(c), rows(m), cols(m), seg(n));
  return c;
}  
matrix<C,V> mmx::column_orthonormalization ( const matrix< C, V > &  m) [inline]
Examples:
matrix_test.cpp.

Definition at line 1265 of file matrix.hpp.

References cols(), copy(), is_non_scalar(), Matrix, rows(), and tab().

                                            {
  typedef implementation<matrix_orthogonalization,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c= copy (m);
  Mat::col_orthonormalize (tab(c), rows(m), cols(m));
  return c;
}  
matrix<C,V> mmx::column_orthonormalization ( const matrix< C, V > &  m,
matrix< C, V > &  l 
) [inline]

Definition at line 1284 of file matrix.hpp.

References CF(), cols(), copy(), is_non_scalar(), Matrix, rows(), and tab().

                                                       {
  typedef implementation<matrix_orthogonalization,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c= copy (m);
  l= Matrix (promote (0, CF(m)), cols(m), cols(m));
  Mat::col_orthonormalize (tab(c), rows(m), cols(m), tab(l));
  return c;
}  
matrix<C,V> mmx::column_reduced_echelon ( const matrix< C, V > &  m,
permutation &  permut 
)

Definition at line 1072 of file matrix.hpp.

References cols(), copy(), is_non_scalar(), Matrix, rows(), and tab().

                                                              {
  typedef implementation<matrix_echelon,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c= copy (m);
  C* k= NULL;
  nat* buf= mmx_new<nat> (default_aligned_size<nat> (cols(m)));
  Mat::col_echelon (tab(c), k, rows(m), cols(m), true, buf);
  permut= permutation (vector<nat> (buf, cols(m), format<nat> ()));
  return c;
}
matrix<C,V> mmx::column_reduced_echelon ( const matrix< C, V > &  m,
matrix< C, V > &  k 
)

Definition at line 1094 of file matrix.hpp.

References column_echelon().

                                                    {
  return column_echelon (m, k, true);
}
matrix<C,V> mmx::column_reduced_echelon ( const matrix< C, V > &  m)
void mmx::combine_crt ( typename Crter::base &  d,
const typename Crter::modulus_base *  src,
Crter &  crter 
) [inline]

Definition at line 343 of file crt_naive.hpp.

Referenced by combine_crt(), and implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::tevaluate().

                                               {
  crter.combine (d, src);
}
void mmx::combine_crt ( typename Crter::base &  d,
const vector< typename Crter::modulus_base, W > &  src,
Crter &  crter 
) [inline]

Definition at line 348 of file crt_naive.hpp.

References seg().

                                                         {
  crter.combine (d, seg (src));
}
Crter::base mmx::combine_crt ( const vector< typename Crter::modulus_base, W > &  src,
Crter &  crter 
) [inline]

Definition at line 353 of file crt_naive.hpp.

References C, combine_crt(), and seg().

                                                   {
  C d; combine_crt (d, seg (src), crter);
  return d;
}
Crter::base mmx::comodulus ( const Crter &  crter,
nat  i 
) [inline]

Definition at line 318 of file crt_naive.hpp.

                                      {
  return crter.comodulus (i);
}
int mmx::compare ( const series< C, V > &  f1,
const series< C, V > &  f2 
)

Definition at line 346 of file series.hpp.

References compare().

                                             {
  for (nat n=0; n< Series::get_cancel_order (); n++) {
    int sgn= compare (f1[n], f2[n]);
    if (sgn != 0) return sgn;
  }
  return 0;
}
int mmx::compare ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Definition at line 370 of file polynomial.hpp.

References N(), and sign().

Referenced by implementation< polynomial_linear, V, polynomial_naive >::cmp(), and compare().

                                                     {
  nat n1= N(P1), n2= N(P2), n= max (n1, n2);
  for (nat i=0; i<n; i++) {
    int s= sign (P1[i] - P2[i]);
    if (s != 0) return s;
  }
  return 0;
}
mmx::COMPARE_INT_SUGAR ( template< typename NT, typename DT >  ,
quotient< NT, DT >   
)
series<C,V> mmx::COMPARE_INT_SUGAR ( template< typename C, typename V ,
series< C, V  
)
mmx::COMPARE_INT_SUGAR ( template< typename C, typename Extension >  ,
algebraic< C, Extension >   
)
mmx::COMPARE_SUGAR ( template< typename NT, typename DT >  ,
quotient< NT, DT >   
)
mmx::COMPARE_SUGAR ( template< typename C, typename Extension >  ,
algebraic< C, Extension >   
)
polynomial<C,V> mmx::compose ( const polynomial< C, V > &  P1,
const polynomial< K, V > &  P2 
)

Definition at line 1051 of file polynomial.hpp.

References C, CF(), compose(), N(), Polynomial, and seg().

                                                          {
  typedef implementation<polynomial_compose,V> Pol;
  nat n1= N(P1), n2= N(P2);
  if (n1 <= 1) return P1;
  if (n2 == 0) return P1[0];
  nat n= (n1-1) * (n2-1) + 1;
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P1));
  Pol::compose (r, seg (P1), seg (P2), n1, n2);
  return Polynomial (r, n, l, CF(P1));
}
algebraic_extension<C>::El mmx::compose ( const algebraic_extension< C > &  ext,
const polynomial< C > &  p,
const typename algebraic_extension< C >::El &  q 
)
Examples:
polynomial_test.cpp.

Definition at line 284 of file algebraic_extension.hpp.

References deg(), Element, and rem().

Referenced by implementation< polynomial_compose, V, polynomial_naive >::compose(), compose(), GLUE_134(), GLUE_28(), GLUE_31(), GLUE_37(), GLUE_39(), GLUE_90(), implementation< series_compose, U, series_naive >::reverse_series_rep< C, V >::initialize(), implementation< polynomial_compose, V, polynomial_naive >::shift(), and upgrade().

                                                                      {
  // Evaluate p at q in a given extension
  Element sum= promote (0, q);
  for (int i= deg (p); i>=0; i--) {
    if (i != deg (p)) sum= rem (sum * q, ext.mp);
    sum += p[i];
  }
  return sum;
}
series<C,V> mmx::compose ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 1160 of file series.hpp.

                                           {
  typedef implementation<series_compose,V> Ser;
  return Ser::ser_compose (f, g);
}
polynomial<C,V> mmx::conj ( const polynomial< C, V > &  p)

Definition at line 1396 of file polynomial.hpp.

{ return unary_map<conj_op> (p); }
matrix<C,V> mmx::conj ( const matrix< C, V > &  m)

Definition at line 672 of file matrix.hpp.

{ return unary_map<conj_op> (m); }
algebraic_number_extension<C,Ball> mmx::conj ( const algebraic_number_extension< C, Ball > &  ext) [inline]

Definition at line 412 of file algebraic_number.hpp.

References Field.

Referenced by abs(), conj(), GLUE_57(), and Re().

                        {
  return Field (ext.ext, conj (ext.x));
}
algebraic_number mmx::conj ( const algebraic_number &  z) [inline]

Definition at line 417 of file algebraic_number.hpp.

References conj(), field(), and value().

                                 {
  return algebraic_number (conj (field (z)), value (z));
}
V C mmx::contents ( const polynomial< C, V > &  P) [inline]

Definition at line 778 of file polynomial.hpp.

References N(), and seg().

Referenced by GLUE_38(), GLUE_46(), and primitive_part().

                               {
  typedef implementation<polynomial_linear,V> Pol;
  return Pol::big_gcd (seg (P), N(P));
}
V polynomial<C,V> mmx::copy ( const polynomial< C, V > &  P)

Definition at line 1338 of file polynomial.hpp.

                                           {
  return unary_map<id_op> (P); }
matrix<C,V> mmx::copy ( const matrix< C, V > &  m)
Examples:
fft_test.cpp, fft_triadic_test.cpp, and vector_simd_test.cpp.

Definition at line 567 of file matrix.hpp.

Referenced by bareiss_coimage(), bareiss_cokernel(), bareiss_det(), bareiss_rank(), bareiss_triangulate(), column_echelon(), column_orthogonalization(), column_orthonormalization(), column_reduced_echelon(), implementation< polynomial_compose, V, polynomial_naive >::compose(), implementation< polynomial_vectorial, V, polynomial_naive >::copy(), implementation< polynomial_vectorial, V, polynomial_carry_naive< W > >::copy(), implementation< matrix_vectorial, V, matrix_naive >::copy(), decode_kronecker(), implementation< matrix_determinant, V, matrix_naive >::det(), implementation< series_multiply, U, series_fast >::nrelax_mul_series_rep< C, V >::direct_transform(), implementation< polynomial_exact_divide, V, polynomial_naive >::div(), div_kronecker(), implementation< polynomial_euclidean, V, polynomial_naive >::euclidean_sequence(), implementation< polynomial_gcd, V, polynomial_naive >::gcd(), implementation< polynomial_euclidean, V, polynomial_naive >::gcd(), implementation< polynomial_graeffe, V, polynomial_unrolled< W, m > >::graeffe(), implementation< matrix_image, V, matrix_naive >::image(), improve_zero(), implementation< polynomial_evaluate, V, polynomial_naive >::interpolate(), fkt_package< V >::inverse_fkt_step(), implementation< matrix_invert, V, matrix_naive >::invert(), invert_lo(), implementation< matrix_kernel, V, matrix_naive >::kernel(), lshiftz(), implementation< polynomial_multiply, V, polynomial_tft_inc< W, Th > >::mul(), implementation< polynomial_multiply, V, polynomial_schonhage_triadic_inc< W, Th > >::mul(), implementation< polynomial_multiply, V, polynomial_schonhage_strassen_inc< W, Th > >::mul(), implementation< polynomial_multiply, V, polynomial_schonhage_inc< W, Th, Th_rec > >::mul(), implementation< polynomial_multiply, V, polynomial_schonhage_strassen_inc< W, Th > >::mul_negative_cyclic(), implementation< polynomial_multiply, V, polynomial_schonhage_strassen_inc< W, Th > >::mul_negative_cyclic_truncated(), implementation< polynomial_multiply, V, polynomial_schonhage_triadic_inc< W, Th > >::mul_triadic(), implementation< polynomial_evaluate, V, polynomial_naive >::multi_mod(), implementation< polynomial_evaluate, V, polynomial_naive >::multi_rem(), operator+(), operator-(), implementation< polynomial_euclidean, V, polynomial_naive >::pade(), implementation< polynomial_euclidean, V, polynomial_dicho< BV > >::pade(), pquo(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::pquo_rem(), prem(), quo(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::quo_rem(), implementation< matrix_image, V, matrix_ring_naive< W > >::rank(), implementation< matrix_image, V, matrix_naive >::rank(), rem(), row_orthogonalization(), row_orthonormalization(), implementation< series_multiply, U, series_fast >::nrelax_mul_series_rep< C, V >::Set_order(), implementation< polynomial_compose, V, polynomial_naive >::shift(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::shift(), shrink(), implementation< polynomial_multiply, V, polynomial_tft_inc< W, Th > >::square(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::tevaluate(), implementation< polynomial_evaluate, V, polynomial_naive >::tinterpolate(), tmul(), tquo(), implementation< polynomial_divide, V, polynomial_ring_dicho_inc< W > >::tquo_rem(), implementation< polynomial_divide, V, polynomial_naive >::tquo_rem(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::tquo_rem(), and trem().

                                   {
  return unary_map<id_op> (m); }
series<C,V> mmx::cos ( const series< C, V > &  f) [inline]
Examples:
series_test.cpp.

Definition at line 114 of file series_elementary.hpp.

Referenced by GLUE_37(), GLUE_52(), and primitive_root_helper< C >::op().

                      {
  return unary_recursive_series<cos_op> (f);
}
vector< series<C,V> > mmx::cos_sin ( const series< C, V > &  f) [inline]
Examples:
series_test.cpp.

Definition at line 109 of file series_elementary.hpp.

References as_series(), as_vector(), and trig().

                          {
  return as_vector (trig (as_series (vec (f))));
}
permutation cycle ( nat  n,
int  plus = 1 
)

Definition at line 28 of file permutation.cpp.

References id_vector().

Referenced by GLUE_4().

                        {
  if (plus >= 0) plus= ((nat) plus) % n;
  else plus= (n-1) - (((nat) (-1-plus)) % n);
  vector<nat> v= id_vector (n);
  for (nat i=0; i<n; i++)
    if (i + plus < n) v[i]= i + plus;
    else v[i]= i + plus - n;
  return permutation (v);
}
void decode_kronecker ( signed char *  dest,
nat  n,
xnat  bits,
const integer &  src 
)
void decode_kronecker ( unsigned char *  dest,
nat  n,
xnat  bits,
const integer &  src 
)

Definition at line 92 of file kronecker_int.cpp.

{       \
void decode_kronecker ( short int *  dest,
nat  n,
xnat  bits,
const integer &  src 
)

Definition at line 104 of file kronecker_int.cpp.

{               \
void decode_kronecker ( unsigned short int *  dest,
nat  n,
xnat  bits,
const integer &  src 
)

Definition at line 93 of file kronecker_int.cpp.

{       \
void decode_kronecker ( int *  dest,
nat  n,
xnat  bits,
const integer &  src 
)

Definition at line 105 of file kronecker_int.cpp.

{               \
void decode_kronecker ( unsigned int *  dest,
nat  n,
xnat  bits,
const integer &  src 
)

Definition at line 94 of file kronecker_int.cpp.

{       \
void decode_kronecker ( long int *  dest,
nat  n,
xnat  bits,
const integer &  src 
)

Definition at line 106 of file kronecker_int.cpp.

{               \
void decode_kronecker ( unsigned long int *  dest,
nat  n,
xnat  bits,
const integer &  src 
)

Definition at line 95 of file kronecker_int.cpp.

{       \
void decode_kronecker ( long long int *  dest,
nat  n,
xnat  bits,
const integer &  src 
)

Definition at line 107 of file kronecker_int.cpp.

{               \
void decode_kronecker ( unsigned long long int *  dest,
nat  n,
xnat  bits,
const integer &  src 
)

Definition at line 96 of file kronecker_int.cpp.

{       \
void decode_kronecker ( integer *  dest,
nat  n,
xnat  bits,
const integer &  src 
)

Definition at line 36 of file kronecker_integer.cpp.

References decode_kronecker().

                                                                       {
  if (n == 0);
  else if (n == 1) dest[0]= src;
  else if (src > 0) {
    nat h= n>>1;
    integer aux= src >> (h*bits);
    if (src[h*bits-1]) aux += 1;
    decode_kronecker (dest+h, n-h, bits, aux);
    aux= src - (aux << (h*bits));
    decode_kronecker (dest, h, bits, aux);
  }
  else {
    integer bis= -src;
    nat h= n>>1;
    integer aux= bis >> (h*bits);
    if (bis[h*bits-1]) aux += 1;
    decode_kronecker (dest+h, n-h, bits, -aux);
    aux= bis - (aux << (h*bits));
    decode_kronecker (dest, h, bits, -aux);
  }
}
void mmx::decode_kronecker ( polynomial< C, V > *  dest,
const polynomial< C, V > &  src,
nat  n,
nat  m 
)

Definition at line 45 of file kronecker_polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

                                                                         {
  typedef implementation<polynomial_linear,V> Pol;
  if (n == 0) return;
  nat l= aligned_size<C,V> (m), i, j; C* x;
  const C* y= seg (src);
  for (i= 0, j= 0; i + 1 < n && j + m < N(src); i++, j += m, y += m) {
    x= mmx_new<C> (l);
    Pol::copy (x, y, m);
    dest[i]= Polynomial (x, m, l, CF(src));
  }
  if (i < n && N(src) > i * m) {
    m= N(src) - i * m;
    l= aligned_size<C,V> (m);
    x= mmx_new<C> (l);
    Pol::copy (x, y, m);
    dest[i]= Polynomial (x, m, l, CF(src));
    i++;
  }
  for (; i < n; i++) dest[i]= Polynomial (C(0));
}
static void mmx::decode_kronecker_int ( I *  dest,
nat  n,
xnat  bits,
const integer &  src 
) [inline, static]

Definition at line 51 of file kronecker_int.cpp.

References decode_kronecker(), and I.

Referenced by decode_kronecker_uint().

                                                                     {
  static const integer mask= (integer (1) << (8 * sizeof (I))) - 1;
  if (n == 0);
  else if (n == 1) 
    dest[0]= src > 0 ? as<I> (src & mask) : - as<I> ((-src) & mask);
  else if (src > 0) {
    nat h= n>>1;
    integer aux= src >> (h*bits);
    if (src[h*bits-1]) aux += 1;
    decode_kronecker (dest+h, n-h, bits, aux);
    aux= src - (aux << (h*bits));
    decode_kronecker (dest, h, bits, aux);
  }
  else {
    integer bis= -src;
    nat h= n>>1;
    integer aux= bis >> (h*bits);
    if (bis[h*bits-1]) aux += 1;
    decode_kronecker (dest+h, n-h, bits, -aux);
    aux= bis - (aux << (h*bits));
    decode_kronecker (dest, h, bits, -aux);
  }
}
void decode_kronecker_mod ( signed char *  dest,
nat  n,
xnat  bits,
const integer &  src,
const signed char &  p 
)

Definition at line 42 of file kronecker_modular_int.cpp.

Referenced by mul_kronecker_mod_int(), and square_kronecker_mod_int().

{                       \
void decode_kronecker_mod ( unsigned char *  dest,
nat  n,
xnat  bits,
const integer &  src,
const unsigned char &  p 
)

Definition at line 43 of file kronecker_modular_int.cpp.

{                       \
void decode_kronecker_mod ( short int *  dest,
nat  n,
xnat  bits,
const integer &  src,
const short int &  p 
)

Definition at line 44 of file kronecker_modular_int.cpp.

{                       \
void decode_kronecker_mod ( unsigned short int *  dest,
nat  n,
xnat  bits,
const integer &  src,
const unsigned short int &  p 
)

Definition at line 45 of file kronecker_modular_int.cpp.

{                       \
void decode_kronecker_mod ( unsigned int *  dest,
nat  n,
xnat  bits,
const integer &  src,
const unsigned int &  p 
)

Definition at line 47 of file kronecker_modular_int.cpp.

{                       \
void decode_kronecker_mod ( int *  dest,
nat  n,
xnat  bits,
const integer &  src,
const int &  p 
)

Definition at line 46 of file kronecker_modular_int.cpp.

{                       \
void decode_kronecker_mod ( long int *  dest,
nat  n,
xnat  bits,
const integer &  src,
const long int &  p 
)

Definition at line 48 of file kronecker_modular_int.cpp.

{                       \
void decode_kronecker_mod ( unsigned long int *  dest,
nat  n,
xnat  bits,
const integer &  src,
const unsigned long int &  p 
)

Definition at line 49 of file kronecker_modular_int.cpp.

{                       \
void decode_kronecker_mod ( long long int *  dest,
nat  n,
xnat  bits,
const integer &  src,
const long long int &  p 
)

Definition at line 50 of file kronecker_modular_int.cpp.

{                       \
void decode_kronecker_mod ( unsigned long long int *  dest,
nat  n,
xnat  bits,
const integer &  src,
const unsigned long long int &  p 
)

Definition at line 51 of file kronecker_modular_int.cpp.

{                       \
void mmx::decode_kronecker_mod_int ( I *  dest,
nat  n,
xnat  bits,
const integer &  src,
const I &  p 
) [inline]

Definition at line 24 of file kronecker_modular_int.cpp.

                                      {
  if (n == 0);
  else if (n == 1) dest[0]= as<I> (p == 0 ? src : src % p);
  else {
    nat h= n>>1;
    integer aux= src >> (h*bits);
    decode_kronecker_mod_int (dest+h, n-h, bits, aux, p);
    aux= src - (aux << (h*bits));
    decode_kronecker_mod_int (dest, h, bits, aux, p);
  }
}
static void mmx::decode_kronecker_uint ( I *  dest,
nat  n,
xnat  bits,
const integer &  src 
) [inline, static]

Definition at line 76 of file kronecker_int.cpp.

References decode_kronecker_int().

                                                                      {
  if (n == 0);
  else if (n == 1) dest[0]= as<I> (src);
  else {
    nat h= n>>1;
    integer aux= src >> (h*bits);
    decode_kronecker_int (dest+h, n-h, bits, aux);
    aux= src - (aux << (h*bits));
    decode_kronecker_int (dest, h, bits, aux);
  }
}
void mmx::decode_modular_int ( modular< modulus< C, V1 >, V2 > *  dest,
const D *  src,
nat  r,
nat  rr,
nat  c,
nat  cc 
)

Definition at line 98 of file matrix_modular_int.hpp.

References C, D, Modular, and Set.

{
  typedef implementation<matrix_linear,V> Mat;
  typedef typename Op::nomul_op Set;
  C p = *Modular::get_modulus ();
  nat dest_rs= Mat::index (1, 0, rr, cc);
  nat dest_cs= Mat::index (0, 1, rr, cc);
  nat src_rs = Mat::index (1, 0, r, c);
  nat src_cs = Mat::index (0, 1, r, c);
  Modular* dest_row= dest;
  const D* src_row= src;
  for (nat i=0; i<r; i++, dest_row += dest_rs, src_row += src_rs) {
    Modular* dest_col= dest_row;
    const D* src_col= src_row;
    for (nat j=0; j<c; j++, dest_col += dest_cs, src_col += src_cs)
      Set::set_op (*dest_col, Modular ((*src_col) % p, true));
  }
}
nat mmx::default_aligned_size ( nat  r,
nat  c 
) [inline]

Definition at line 82 of file matrix_naive.hpp.

                                    {
  return default_aligned_size<C> (r * c); }
mmx::DEFINE_UNARY_FORMAT_2 ( quotient  )
mmx::DEFINE_VARIANT ( crt_naive_integer  ,
crt_signed< crt_naive >   
)

Definition at line 27 of file crt_integer.hpp.

References C, I, and rem().

                                                       :
    public implementation<crt_project,crt_signed<crt_naive> >
{
  template<typename C, typename I, typename W> static inline I
  mod (const C& a, const modulus<I,W>& p) {
    static integer r;
    return (I) mpz_fdiv_r_ui (*r, *a, *p); }

  template<typename C, typename W> static inline C
  mod (const C& a, const modulus<integer,W>& p) {
    return rem (a, *p); }
};
#endif

STMPL
struct crt_naive_variant_helper<integer> {
  typedef crt_naive_integer CV; };
mmx::DEFINE_VARIANT ( crt_dicho_integer  ,
crt_dicho< crt_naive_integer >   
)

Definition at line 49 of file crt_integer.hpp.

                                         {
  typedef crt_dicho_integer CV; };
mmx::DEFINE_VARIANT ( crt_int  ,
crt_signed< crt_naive >   
)
mmx::DEFINE_VARIANT ( polynomial_int  ,
polynomial_ring_dicho< polynomial_balanced< polynomial_kronecker< polynomial_naive > > >   
)

Definition at line 27 of file polynomial_int.hpp.

References DECLARE_HELPER.

                                            {   \
    typedef polynomial_int PV; };
DECLARE_HELPER(signed char)
mmx::DEFINE_VARIANT ( polynomial_integer  ,
polynomial_gcd_ring_dicho< polynomial_balanced< polynomial_kronecker< polynomial_naive > > >   
)

Definition at line 27 of file polynomial_integer.hpp.

                                          {
  typedef polynomial_integer PV;
};
mmx::DEFINE_VARIANT ( polynomial_modular_int  ,
polynomial_dicho< polynomial_balanced< polynomial_kronecker< polynomial_naive > > >   
)
mmx::DEFINE_VARIANT ( polynomial_modular_integer  ,
polynomial_modular< polynomial_dicho< polynomial_naive > >   
)
mmx::DEFINE_VARIANT ( polynomial_rational  ,
polynomial_quotient< polynomial_dicho< polynomial_naive > >   
)

Definition at line 21 of file polynomial_rational.hpp.

                                           {
  typedef polynomial_rational PV;
};
mmx::DEFINE_VARIANT ( polynomial_generic_schonhage  ,
polynomial_ring_dicho< polynomial_schonhage< polynomial_ring_naive< polynomial_naive > > >   
)
mmx::DEFINE_VARIANT ( polynomial_series_dicho  ,
polynomial_series< polynomial_dicho< polynomial_naive > >   
)
mmx::DEFINE_VARIANT ( series_complex  ,
series_relaxed< series_naive >   
)

Definition at line 21 of file series_complex.hpp.

                                          {
  typedef series_complex SV;
};
mmx::DEFINE_VARIANT ( matrix_double  ,
matrix_strassen< matrix_threads< Matrix_simd_variant(double)> >   
)

Definition at line 28 of file matrix_double.hpp.

References MV.

                                     {
  typedef matrix_double MV;
};
mmx::DEFINE_VARIANT ( series_int  ,
series_relaxed< series_naive >   
)

Definition at line 21 of file series_int.hpp.

References DECLARE_HELPER.

                                  {                             \
    typedef series_int SV;                                      \
  };

DECLARE_HELPER(unsigned char)
mmx::DEFINE_VARIANT ( series_integer  ,
series_relaxed< series_naive >   
)

Definition at line 21 of file series_integer.hpp.

                                      {
  typedef series_integer SV;
};
mmx::DEFINE_VARIANT ( matrix_integer  ,
matrix_balanced< matrix_crt< matrix_ring_naive< matrix_naive > > >   
)

Definition at line 29 of file matrix_integer.hpp.

References MV.

                                      {
  typedef matrix_integer MV;
};
mmx::DEFINE_VARIANT ( matrix_modular_int  ,
matrix_strassen< matrix_threads< matrix_unrolled_4_4 > >   
)
mmx::DEFINE_VARIANT ( matrix_modular_integer  ,
matrix_naive   
)
mmx::DEFINE_VARIANT ( series_modular_int  ,
series_relaxed< series_naive >   
)
mmx::DEFINE_VARIANT ( series_modular_integer  ,
series_relaxed< series_naive >   
)
mmx::DEFINE_VARIANT ( series_rational  ,
series_relaxed< series_naive >   
)

Definition at line 21 of file series_rational.hpp.

                                       {
  typedef series_rational SV;
};
mmx::DEFINE_VARIANT ( matrix_rational  ,
matrix_quotient< matrix_naive >   
)

Definition at line 40 of file matrix_quotient.hpp.

References MV.

                                       {
  typedef matrix_rational MV;
};
mmx::DEFINE_VARIANT ( base_naive_int  ,
base_signed< base_naive >   
)
base_signed<base_dicho<base_naive> > mmx::DEFINE_VARIANT ( base_naive_uint  ,
base_naive   
)
mmx::DEFINE_VARIANT ( base_naive_integer  ,
base_signed< base_naive >   
)
mmx::DEFINE_VARIANT_1 ( typename V  ,
V  ,
polynomial_ring_dicho  ,
polynomial_ring_dicho_inc< polynomial_ring_naive< polynomial_dicho< V > > >   
)

Definition at line 41 of file polynomial_ring_dicho.hpp.

                                    :
  public V {};
mmx::DEFINE_VARIANT_1 ( typename V  ,
V  ,
polynomial_gcd_ring_dicho  ,
polynomial_gcd_ring_dicho_inc< polynomial_gcd_ring_naive< polynomial_ring_dicho< V > > >   
)
mmx::DEFINE_VARIANT_1 ( typename V  ,
V  ,
polynomial_gcd_ring_naive  ,
polynomial_gcd_ring_naive_inc< polynomial_ring_naive< V > >   
)

Definition at line 60 of file polynomial_ring_naive.hpp.

                                    : public V {
  typedef typename V::Vec Vec;
  typedef polynomial_gcd_ring_ducos_inc<typename V::Naive> Naive;
  typedef polynomial_gcd_ring_ducos_inc<typename V::Positive> Positive;
  typedef polynomial_gcd_ring_ducos_inc<typename V::No_simd> No_simd;
  typedef polynomial_gcd_ring_ducos_inc<typename V::No_thread> No_thread;
  typedef polynomial_gcd_ring_ducos_inc<typename V::No_scaled> No_scaled;
};
mmx::DEFINE_VARIANT_1 ( typename V  ,
V  ,
polynomial_gcd_ring_ducos  ,
polynomial_gcd_ring_ducos_inc< polynomial_gcd_ring_naive< V > >   
)
mmx::DEFINE_VARIANT_1 ( typename V  ,
V  ,
polynomial_schonhage  ,
polynomial_balanced_tft< polynomial_schonhage_inc< polynomial_karatsuba< V > > >   
)
mmx::DEFINE_VARIANT_1 ( typename V  ,
V  ,
polynomial_schonhage_strassen  ,
polynomial_balanced_tft< polynomial_schonhage_strassen_inc< polynomial_karatsuba< V > > >   
)
mmx::DEFINE_VARIANT_1 ( typename V  ,
V  ,
polynomial_schonhage_triadic  ,
polynomial_balanced< polynomial_schonhage_triadic_inc< polynomial_karatsuba< V > > >   
)
mmx::DEFINE_VARIANT_1 ( typename V  ,
V  ,
polynomial_tft  ,
polynomial_dicho< polynomial_balanced_tft< polynomial_tft_inc< polynomial_karatsuba< V > > > >   
)
mmx::DEFINE_VARIANT_1 ( typename I  ,
,
matrix_int_simd  ,
matrix_strassen< typename Matrix_simd_variant(I) >   
)
series<C,V> mmx::deflate ( const series< C, V > &  f,
nat  p 
) [inline]

Definition at line 1052 of file series.hpp.

References CF(), is_exact_zero(), Series, and Series_rep.

                                 {
  if (is_exact_zero (f)) return Series (CF(f));
  return (Series_rep*) new deflate_series_rep<C,V> (f, p);
}
matrix<C,V> mmx::delete_col ( const matrix< C, V > &  m,
nat  c 
)

Definition at line 847 of file matrix.hpp.

References CF(), cols(), is_non_scalar(), Matrix, and rows().

Referenced by first_minor().

                                    {
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  ASSERT (c < cols (m), "index out of range");
  Matrix d (promote (0, CF(m)), rows (m), cols (m) - 1);
  for (nat j= 0; j < c; j++)
    for (nat i= 0; i < rows (m); i++) d(i,j)= m(i,j);
  for (nat j= c+1; j < cols (m); j++)
    for (nat i= 0; i < rows (m); i++) d(i,j-1)= m(i,j);
  return d;
}
matrix<C,V> mmx::delete_row ( const matrix< C, V > &  m,
nat  r 
) [inline]

Definition at line 835 of file matrix.hpp.

References CF(), cols(), is_non_scalar(), Matrix, and rows().

Referenced by first_minor().

                                    {
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  ASSERT (r < rows (m), "index out of range");
  Matrix d (promote (0, CF(m)), rows (m) - 1, cols (m));
  for (nat i= 0; i < r; i++)
    for (nat j= 0; j < cols (m); j++) d(i,j)= m(i,j);
  for (nat i= r+1; i < rows (m); i++)
    for (nat j= 0; j < cols (m); j++) d(i-1,j)= m(i,j);
  return d;
}
Denominator_type ( ) const
polynomial<C,V> mmx::derive ( const polynomial< C, V > &  P)

Definition at line 1009 of file polynomial.hpp.

References C, CF(), derive(), N(), Polynomial, and seg().

                             {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= N(P);
  if (n <= 1) return promote (0, P);
  nat l= aligned_size<C,V> (n-1);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::derive (r, seg (P), n);
  return Polynomial (r, n-1, l, CF(P));
}
polynomial<C,V> mmx::derive ( const polynomial< C, V > &  P,
const nat &  order 
)

Definition at line 1020 of file polynomial.hpp.

References C, CF(), derive(), N(), Polynomial, and seg().

                                               {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= N(P);
  if (n <= order) return promote (0, P);
  nat l= aligned_size<C,V> (n-order);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::derive (r, seg (P), n, order);
  return Polynomial (r, n-order, l, CF(P));
}
quotient<NT,DT> mmx::derive ( const quotient< NT, DT > &  x)

Definition at line 305 of file quotient.hpp.

References denominator(), derive(), numerator(), Quotient, and square().

                           {
  return Quotient (derive (numerator (x)) * denominator (x) -
                   numerator (x) * derive (denominator (x)),
                   square (denominator (x)),
                   true);
}
quotient<NT,DT> mmx::derive ( const quotient< NT, DT > &  x,
const VT &  v 
)

Definition at line 321 of file quotient.hpp.

References denominator(), derive(), numerator(), Quotient, and square().

                                        {
  return Quotient (derive (numerator (x), v) * denominator (x) -
                   numerator (x) * derive (denominator (x), v),
                   square (denominator (x)),
                   true);
}
series<C,V> mmx::derive ( const series< C, V > &  f) [inline]

Definition at line 893 of file series.hpp.

References CF(), is_exact_zero(), Series, and Series_rep.

                         {
  if (is_exact_zero (f)) return Series (CF(f));
  return (Series_rep*) new derive_series_rep<C,V> (f);
}
series<C,V> mmx::derive_coeffs ( const series< C, V > &  f,
const T &  v 
) [inline]

Definition at line 899 of file series.hpp.

                                            {
  return binary_scalar_series<derive_op> (f, v);
}
C mmx::det ( const matrix< C, V > &  m) [inline]
Examples:
matrix_test.cpp, and pivot_test.cpp.

Definition at line 1125 of file matrix.hpp.

References CF(), cols(), is_non_scalar(), rows(), and tab().

Referenced by first_minor(), GLUE_101(), GLUE_31(), and GLUE_56().

                      {
  typedef implementation<matrix_determinant,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  ASSERT (cols(m) == rows(m), "square matrix expected");
  C r= promote (1, CF(m));
  Mat::det (r, tab(m), rows(m));
  return r;
}
static nat mmx::digit_mirror_triadic ( nat  i,
nat  n 
) [static]
Examples:
fft_triadic_test.cpp.

Definition at line 36 of file fft_roots.hpp.

Referenced by roots_triadic_helper< CC, UU, SS >::create_roots(), and roots_triadic_helper< CC, UU, SS >::create_stoor().

                                    {
  if (n == 1) return i;
  else return digit_mirror_triadic (i % (n / 3), n / 3) * 3 + i / (n / 3);
}
polynomial<C,V> mmx::dilate ( const polynomial< C, V > &  P,
nat  p 
)
Examples:
polynomial_test.cpp, and series_test.cpp.

Definition at line 1091 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

Referenced by GLUE_123(), GLUE_19(), GLUE_26(), GLUE_27(), GLUE_33(), GLUE_39(), GLUE_41(), GLUE_92(), GLUE_97(), and ramify().

                                    {
  typedef implementation<polynomial_linear,V> Pol;
  if (p == 1) return P;
  nat n= N(P);
  if (n <= 1) return P;
  nat k= (n-1)*p + 1;
  nat l= aligned_size<C,V> (k);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::dilate (r, seg (P), p, n);
  return Polynomial (r, k, l, CF(P));
}
series<C,V> mmx::dilate ( const series< C, V > &  f,
nat  p 
) [inline]

Definition at line 1031 of file series.hpp.

References CF(), is_exact_zero(), Series, and Series_rep.

                                {
  if (is_exact_zero (f)) return Series (CF(f));
  return (Series_rep*) new dilate_series_rep<C,V> (f, p);
}
void mmx::direct_base ( vector< typename Baser::modulus_base, W > &  dest,
const typename Baser::base &  s,
Baser &  baser 
) [inline]

Definition at line 166 of file base_naive.hpp.

References CF(), I, and size_bound().

                                                          {
  nat n= size_bound (s, baser);
  nat l= aligned_size<I,W> (n);
  I* tmp= mmx_formatted_new<I> (l, CF(dest));
  n= baser.direct_transform (tmp, n, s);
  dest= vector<I,W> (tmp, n, l, CF(dest));
}
vector< typename Baser::modulus_base > mmx::direct_base ( const typename Baser::base &  s,
Baser &  baser 
) [inline]

Definition at line 175 of file base_naive.hpp.

References direct_base().

                                       {
  vector<I> dest;
  direct_base (dest, s, baser);
  return dest;
}
nat mmx::direct_base ( typename Baser::modulus_base *  dest,
nat  n,
const typename Baser::base &  s,
Baser &  baser 
) [inline]
void mmx::direct_crt ( typename Crter::modulus_base *  dest,
const typename Crter::base &  s,
Crter &  crter 
) [inline]
void mmx::direct_crt ( vector< typename Crter::modulus_base, W > &  dest,
const typename Crter::base &  s,
Crter &  crter 
) [inline]

Definition at line 328 of file crt_naive.hpp.

References CF(), I, and N().

                                                         {
  nat l= aligned_size<I,W> (N(crter));
  I* tmp= mmx_formatted_new<I> (l, CF(dest));
  crter.direct_transform (tmp, s);
  dest= vector<I,W> (tmp, N(crter), l, CF(dest));
}
vector< typename Crter::modulus_base > mmx::direct_crt ( const typename Crter::base &  s,
Crter &  crter 
) [inline]

Definition at line 336 of file crt_naive.hpp.

References direct_crt().

                                      {
  vector<I> dest;
  direct_crt (dest, s, crter);
  return dest;
}
void mmx::direct_fft ( C *  dest,
nat  n 
) [inline]

Definition at line 208 of file fft_naive.hpp.

References fft_naive_transformer< C, V >::direct_transform().

                            {
  fft_naive_transformer<C> ffter (n);
  ffter.direct_transform (dest);
}
void mmx::direct_fft_triadic ( C *  dest,
nat  n 
) [inline]

Definition at line 182 of file fft_triadic_naive.hpp.

References fft_triadic_naive_transformer< C, VV >::direct_transform_triadic().

                                    {
  fft_triadic_naive_transformer<C> ffter (n);
  ffter.direct_transform_triadic (dest);
}
void mmx::direct_kronecker ( integer &  dest,
const integer *  src,
nat  n,
xnat  bits 
)
C mmx::discriminant ( const polynomial< C, V > &  P) [inline]

Definition at line 999 of file polynomial.hpp.

References derive(), and resultant().

Referenced by GLUE_29(), GLUE_35(), GLUE_37(), and GLUE_88().

                                   {
  typedef implementation<polynomial_subresultant,V> Pol;
  return resultant (derive (P), P);
}
algebraic_number_extension<C,Ball>::El mmx::div ( const algebraic_number_extension< C, Ball > &  ext,
const C &  c1,
const typename algebraic_number_extension< C, Ball >::El &  p2 
) [inline]

Definition at line 247 of file algebraic_number.hpp.

References div().

                                                       {
  return div (ext.ext, c1, p2);
}
algebraic_number_extension<C,Ball>::El mmx::div ( const algebraic_number_extension< C, Ball > &  ext,
const typename algebraic_number_extension< C, Ball >::El &  p1,
const typename algebraic_number_extension< C, Ball >::El &  p2 
) [inline]

Definition at line 252 of file algebraic_number.hpp.

References div().

                                                             {
  return div (ext.ext, p1, p2);
}
algebraic_extension<C>::El mmx::div ( const algebraic_extension< C > &  ext,
const typename algebraic_extension< C >::El &  p1,
const typename algebraic_extension< C >::El &  p2 
)

Definition at line 119 of file algebraic_extension.hpp.

References Element, gcd(), and rem().

                                                                 {
  Element a= promote (0, p2), b= promote (0, p2), c= gcd (p2, ext.mp, a, b);
  return rem (p1 * a, ext.mp);
}
void mmx::div_kronecker ( polynomial< C, V > *  dest,
const polynomial< C, V > *  s1,
nat  n1,
const polynomial< C, V > *  s2,
nat  n2 
) [inline]

Definition at line 95 of file kronecker_polynomial.hpp.

References copy(), decode_kronecker(), encode_kronecker(), is_exact_zero(), max_polynomial_size(), and Polynomial.

Referenced by implementation< polynomial_exact_divide, V, polynomial_polynomial< W > >::div().

                                             {
  typedef implementation<polynomial_linear,V> Pol;
  ASSERT (n2 != 0, "division by zero");
  if (n1 == 0) return;
  nat m1= max_polynomial_size (s1, n1);
  nat m2= max_polynomial_size (s2, n2);
  nat n= n1 - n2 + 1;
  Polynomial x1, x2, y;
  encode_kronecker (x1, s1, n1, m1);
  encode_kronecker (x2, s2, n2, m1);
  y= x1 / x2;
  nat l= default_aligned_size<C> (n1);
  Polynomial* tmp= mmx_new<Polynomial> (l);
  decode_kronecker (tmp, y, n1, m1);
  while (n1 > 0 && is_exact_zero (tmp[n1-1])) n1--;
  nat m= max_polynomial_size (tmp, n1);
  if (n1 <= n && m1 != m + m2 - 1) {
    mmx_delete<Polynomial> (tmp, l);
    ERROR ("unexact division");
  }
  Pol::copy (dest, tmp, n);
  mmx_delete<Polynomial> (tmp, l); }
bool mmx::divides ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 1123 of file series.hpp.

References val().

                                           {
  return val (f) <= val (g);
}
bool mmx::divides ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Definition at line 675 of file polynomial.hpp.

References rem().

Referenced by GLUE_130(), GLUE_24(), GLUE_25(), GLUE_31(), GLUE_33(), and GLUE_84().

                                                     {
  return rem (P2, P1) == 0;
}
list<Monomial > mmx::dominant_monomials ( const quotient_series< Series, Monomial > &  f)

Definition at line 128 of file quotient_series.hpp.

                                                         {
  return stair_mul (f->m, dominant_monomials (f->f)); }
polynomial<C,V> mmx::duplicate ( const polynomial< C, V > &  P)

Definition at line 1340 of file polynomial.hpp.

                                                {
  return unary_map<duplicate_op> (P); }
matrix<C,V> mmx::duplicate ( const matrix< C, V > &  m)

Definition at line 569 of file matrix.hpp.

                                        {
  return unary_map<duplicate_op> (m); }
void encode_kronecker ( integer &  dest,
const signed char *  src,
nat  n,
xnat  bits 
)
void encode_kronecker ( integer &  dest,
const unsigned char *  src,
nat  n,
xnat  bits 
)

Definition at line 38 of file kronecker_int.cpp.

{
void encode_kronecker ( integer &  dest,
const short int *  src,
nat  n,
xnat  bits 
)

Definition at line 44 of file kronecker_int.cpp.

{
void mmx::encode_kronecker ( integer &  dest,
const unsigned short int *  src,
nat  n,
xnat  bits 
)
void encode_kronecker ( integer &  dest,
const int *  src,
nat  n,
xnat  bits 
)

Definition at line 45 of file kronecker_int.cpp.

{
void encode_kronecker ( integer &  dest,
const unsigned int *  src,
nat  n,
xnat  bits 
)

Definition at line 40 of file kronecker_int.cpp.

{
void encode_kronecker ( integer &  dest,
const long int *  src,
nat  n,
xnat  bits 
)

Definition at line 46 of file kronecker_int.cpp.

{
void encode_kronecker ( integer &  dest,
const unsigned long int *  src,
nat  n,
xnat  bits 
)

Definition at line 41 of file kronecker_int.cpp.

{
void encode_kronecker ( integer &  dest,
const long long int *  src,
nat  n,
xnat  bits 
)

Definition at line 47 of file kronecker_int.cpp.

{
void encode_kronecker ( integer &  dest,
const unsigned long long int *  src,
nat  n,
xnat  bits 
)

Definition at line 42 of file kronecker_int.cpp.

{
void encode_kronecker ( integer &  dest,
const integer *  src,
nat  n,
xnat  bits 
)

Definition at line 23 of file kronecker_integer.cpp.

References encode_kronecker().

                                                                       {
  if (n == 0) dest= 0;
  else if (n == 1) dest= src[0];
  else {
    nat h= n>>1;
    integer aux;
    encode_kronecker (aux , src+h, n-h, bits);
    encode_kronecker (dest, src  , h  , bits);
    dest += (aux << (h*bits));
  }
}
void mmx::encode_kronecker ( integer &  dest,
const unsigned short *  src,
nat  n,
xnat  bits 
)

Definition at line 39 of file kronecker_int.cpp.

{
void mmx::encode_kronecker ( polynomial< C, V > &  dest,
const polynomial< C, V > *  src,
nat  n,
nat  m 
)

Definition at line 33 of file kronecker_polynomial.hpp.

References C, CF(), and Polynomial.

                                                                         {
  if (n == 0) return;
  nat p= n * m;
  nat l= aligned_size<C,V> (p);
  C* x= mmx_new<C> (l); C* y= x;
  for (nat i= 0; i < n; i++, x += m, src++)
    for (nat j= 0; j < m; j++)
      x[j]= (*src)[j];
  dest= Polynomial (y, p, l, CF(src[0]));
}
static void mmx::encode_kronecker_int ( integer &  dest,
const I *  src,
nat  n,
xnat  bits 
) [inline, static]

Definition at line 22 of file kronecker_int.cpp.

                                                                     {
  if (n == 0) dest= 0;
  else if (n == 1) dest= src[0];
  else {
    nat h= n>>1;
    integer aux;
    encode_kronecker_int (aux , src+h, n-h, bits);
    encode_kronecker_int (dest, src  , h  , bits);
    dest += (aux << (h*bits));
  }
}
void mmx::encode_modular_int ( D *  dest,
const modular< modulus< C, V1 >, V2 > *  src,
nat  r,
nat  rr,
nat  c,
nat  cc 
)

Definition at line 78 of file matrix_modular_int.hpp.

References D, and Modular.

{
  typedef implementation<matrix_linear,V> Mat;
  nat dest_rs= Mat::index (1, 0, r, c);
  nat dest_cs= Mat::index (0, 1, r, c);
  nat src_rs = Mat::index (1, 0, rr, cc);
  nat src_cs = Mat::index (0, 1, rr, cc);
  D* dest_row= dest;
  const Modular* src_row= src;
  for (nat i=0; i<r; i++, dest_row += dest_rs, src_row += src_rs) {
    D* dest_col= dest_row;
    const Modular* src_col= src_row;
    for (nat j=0; j<c; j++, dest_col += dest_cs, src_col += src_cs)
      *dest_col= (D) (*(*src_col));
  }
}
mmx::EQUAL_INT_SUGAR ( template< typename NT, typename DT >  ,
quotient< NT, DT >   
)
mmx::EQUAL_INT_SUGAR ( template< typename C, typename Extension >  ,
algebraic< C, Extension >   
)
mmx::EQUAL_INT_SUGAR ( template< typename C, typename V ,
series< C, V  
)
C mmx::eval ( const polynomial< C, V > &  p,
const C &  x 
) [inline]

Definition at line 1137 of file polynomial.hpp.

References evaluate().

                                       {
  return evaluate (p, x);
}
vector<C> mmx::eval ( const polynomial< C, V > &  p,
const vector< C > &  x 
) [inline]

Definition at line 1162 of file polynomial.hpp.

References evaluate().

                                            {
  return evaluate (p, x);
}
K mmx::eval ( const polynomial< C, V > &  p,
const K &  x 
)

Definition at line 117 of file algebraic_number.hpp.

References deg().

Referenced by as_ball(), improve_zero(), is_zero(), join(), normalize(), and sign().

                                            {
  K sum= 0;
  for (int i=deg(p); i>=0; i--) {
    sum *= x;
    sum += as<K> (p[i]);
  }
  return sum;
}
Ball mmx::eval ( const algebraic_number_extension< C, Ball > &  ext,
const typename algebraic_number_extension< C, Ball >::El &  p1 
)

Definition at line 190 of file algebraic_number.hpp.

References deg(), and increase_precision().

                                           {
  increase_precision (ext);
  Ball sum= 0;
  for (int i=deg(p1); i>=0; i--) {
    sum *= ext.x;
    sum += as<Ball> (p1[i]);
  }
  return sum;
}
Ball mmx::eval ( const algebraic_number_extension< C, Ball > &  ext1,
const algebraic_number_extension< C, Ball > &  ext2,
const vector< C > &  v 
)

Definition at line 201 of file algebraic_number.hpp.

References deg(), and increase_precision().

                                                                {
  increase_precision (ext1);
  increase_precision (ext2);
  Ball sum1= 0;
  for (int i1=deg(ext1.ext.mp)-1; i1>=0; i1--) {
    Ball sum2= 0;
    for (int i2=deg(ext2.ext.mp)-1; i2>=0; i2--) {
      sum2 *= ext2.x;
      sum2 += as<Ball> (v[i1*deg(ext2.ext.mp) + i2]);
    }
    sum1 *= ext1.x;
    sum1 += sum2;
  }
  return sum1;
}
vector<C> mmx::evaluate ( const polynomial< C, V > &  p,
const vector< C > &  x 
) [inline]

Definition at line 1156 of file polynomial.hpp.

References evaluate().

                                                {
  typedef implementation<polynomial_evaluate,V> Pol;
  return Pol::evaluate (p, x);
}
bool mmx::exact_eq ( const algebraic< C, Extension > &  x1,
const algebraic< C, Extension > &  x2 
) [inline]

Definition at line 111 of file algebraic.hpp.

References field(), and value().

Referenced by implementation< polynomial_vectorial, V, polynomial_naive >::exact_eq(), exact_eq(), and exact_neq().

                                                                     {
  return exact_eq (value (x1), value (x2)) &&
         exact_eq (field (x1), field (x2)); }
bool mmx::exact_eq ( const quotient< NT, DT > &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 147 of file quotient.hpp.

References denominator(), exact_eq(), and numerator().

                                                                   {
  return exact_eq (numerator (x1), numerator (x2)) &&
         exact_eq (denominator (x1), denominator (x2)); }
bool mmx::exact_eq ( const quotient_series< Series, Monomial > &  f,
const quotient_series< Series, Monomial > &  g 
) [inline]

Definition at line 102 of file quotient_series.hpp.

References exact_eq().

                                                              {
  return exact_eq (f->f, g->f) && exact_eq (f->m, g->m); }
bool mmx::exact_eq ( const algebraic_number_extension< C, Ball > &  x,
const algebraic_number_extension< C, Ball > &  y 
) [inline]

Definition at line 82 of file algebraic_number.hpp.

References exact_eq().

                                                           {
  return exact_eq (*x, *y); }
bool mmx::exact_eq ( const algebraic_extension< C > &  x,
const algebraic_extension< C > &  y 
) [inline]

Definition at line 62 of file algebraic_extension.hpp.

References exact_eq().

                                                                   {
  return exact_eq (*x, *y); }
nat mmx::exact_hash ( const quotient< NT, DT > &  x) [inline]

Definition at line 136 of file quotient.hpp.

References denominator(), exact_hash(), and numerator().

                                               {
  nat h= exact_hash (numerator (x));
  return (h<<1) ^ (h<<5) ^ (h>>29) ^ exact_hash (denominator (x)); }
nat mmx::exact_hash ( const algebraic_number_extension< C, Ball > &  x) [inline]

Definition at line 76 of file algebraic_number.hpp.

References exact_hash().

{ return exact_hash (*x); }
nat mmx::exact_hash ( const quotient_series< Series, Monomial > &  f) [inline]

Definition at line 99 of file quotient_series.hpp.

References exact_hash().

                                                      {
  return exact_hash (f->f) ^ exact_hash (f->m); }
nat mmx::exact_hash ( const algebraic< C, Extension > &  x) [inline]

Definition at line 105 of file algebraic.hpp.

References field(), and value().

Referenced by exact_hash().

                                                {
  nat h= exact_hash (value (x));
  return (h<<1) ^ (h<<5) ^ (h>>29) ^ exact_hash (field (x)); }
nat mmx::exact_hash ( const algebraic_extension< C > &  x) [inline]

Definition at line 56 of file algebraic_extension.hpp.

References exact_hash().

{ return exact_hash (*x); }
bool mmx::exact_neq ( const quotient< NT, DT > &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 150 of file quotient.hpp.

References exact_eq().

                                                                    {
  return !exact_eq (x1, x2); }
bool mmx::exact_neq ( const quotient_series< Series, Monomial > &  f,
const quotient_series< Series, Monomial > &  g 
) [inline]

Definition at line 105 of file quotient_series.hpp.

References exact_eq().

                                                               {
  return !exact_eq (f, g); }
bool mmx::exact_neq ( const algebraic_number_extension< C, Ball > &  x,
const algebraic_number_extension< C, Ball > &  y 
) [inline]

Definition at line 84 of file algebraic_number.hpp.

References exact_neq().

                                                            {
  return exact_neq (*x, *y); }
bool mmx::exact_neq ( const algebraic< C, Extension > &  x1,
const algebraic< C, Extension > &  x2 
) [inline]
bool mmx::exact_neq ( const algebraic_extension< C > &  x,
const algebraic_extension< C > &  y 
) [inline]

Definition at line 64 of file algebraic_extension.hpp.

References exact_neq().

                                                                    {
  return exact_neq (*x, *y); }
series<C,V> mmx::exp ( const series< C, V > &  f) [inline]
Examples:
fast_series_test.cpp, and series_test.cpp.

Definition at line 40 of file series_elementary.hpp.

Referenced by GLUE_35(), GLUE_50(), pow(), and ramify().

                      {
  return unary_recursive_series<exp_op> (f);
}
vector< polynomial<C,V> > mmx::expand ( const polynomial< C, V > &  p,
const vector< C > &  v,
const vector< nat > &  mu 
)

Definition at line 1195 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

                                                                     {
  typedef implementation<polynomial_evaluate,V> Pol;
  nat k= N(v);
  ASSERT (N(mu) == k, "dimensions don't match");
  C** r= mmx_new<C*> (k);
  for (nat i=0; i<k; i++)
    r[i]= mmx_formatted_new<C> (aligned_size<C,V> (mu[i]), CF(p));
  Pol::expand (r, seg (p), seg (v), seg (mu), N (p), k);
  nat l= default_aligned_size<Polynomial > (k);
  Polynomial* ret= mmx_formatted_new<Polynomial > (l, get_format (p));
  for (nat i=0; i<k; i++)
    ret[i]= Polynomial (r[i], mu[i], aligned_size<C,V> (mu[i]), CF(p));
  mmx_delete<C*> (r, k);
  return vector<Polynomial > (ret, k, l);
}
xint mmx::exponent ( const polynomial< C, V > &  p) [inline]

Definition at line 1384 of file polynomial.hpp.

                                                {
  return big<max_exponent_op> (p); }
xint mmx::exponent ( const matrix< C, V > &  m) [inline]

Definition at line 660 of file matrix.hpp.

                                            {
  return big<max_exponent_op> (m); }
matrix<C,V> mmx::extend ( const matrix< C, V > &  m,
const matrix< C2, V2 > &  n 
) [inline]

Definition at line 194 of file matrix.hpp.

References cols(), is_a_scalar(), is_non_scalar(), Matrix, and rows().

Referenced by binary_map(), binary_test(), base_dicho_transformer< C, S, V >::direct_transform(), base_dicho_transformer< C, S, V >::inverse_transform(), polynomial< C, V >::operator+=(), coprime_moduli_sequence< M, V >::operator[](), and unary_set().

                                                 {
  VERIFY (is_a_scalar (m), "scalar matrix expected");
  VERIFY (is_non_scalar (n), "non-scalar matrix expected");
  return Matrix (m.scalar(), rows (n), cols (n)); }
polynomial<C,V> mmx::extract_mod ( const polynomial< C, V > &  P,
nat  k,
nat  p 
)

Definition at line 1225 of file polynomial.hpp.

References C, CF(), N(), and Polynomial.

                                                {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= (N(P) - k + p - 1) / p;
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  for (nat i=0; i<n; i++) r[i]= P[i*p+k];
  return Polynomial (r, n, l, CF(P));
}
void mmx::fft_mul ( double *  dest,
const double *  s1,
const double *  s2,
nat  n1,
nat  n2 
)

Definition at line 33 of file fft_double.cpp.

References mul().

                                                                           {
  typedef polynomial_dicho<
            polynomial_tft<
              polynomial_karatsuba<
                polynomial_naive> > > PV;
  typedef implementation<vector_linear,PV> Vec;
  typedef implementation<polynomial_multiply,PV> Pol;
  //mmout << "s1= "; Vec::print (mmout, s1, n1); mmout << "\n";
  //mmout << "s2= "; Vec::print (mmout, s2, n2); mmout << "\n";
  nat nd = n1 + n2 - 1;
  nat spc= n1 + n2 + nd;
  complex<double>* m1= mmx_new<complex<double> > (spc);
  complex<double>* m2= m1 + n1;
  complex<double>* md= m2 + n2;
  Vec::cast (m1, s1, n1);
  Vec::cast (m2, s2, n2);
  Pol::mul (md, m1, m2, n1, n2);
  Vec::vec_unary<Re_op> (dest, md, nd);
  mmx_delete<complex<double> > (m1, spc);
  //mmout << "dd= "; Vec::print (mmout, dest, nd); mmout << "\n";
}
polynomial<C> mmx::field_modulus ( const algebraic< C, Extension > &  x) [inline]

Definition at line 96 of file algebraic.hpp.

{ return x.ext.mp; }
matrix<C> mmx::fill_matrix ( const C &  x,
const int &  r,
const int &  c 
)

Definition at line 700 of file matrix.hpp.

Referenced by GLUE_17(), GLUE_20(), GLUE_34(), and GLUE_79().

                                                     {
  matrix<C> m (promote (0, x), (nat) r, (nat) c);
  for (nat i=0; i<((nat) r); i++)
    for (nat j=0; j<((nat) c); j++)
      m (i, j)= x;
  return m;
}
C mmx::first_minor ( const matrix< C, V > &  m,
nat  i,
nat  j 
) [inline]

Definition at line 1135 of file matrix.hpp.

References cols(), delete_col(), delete_row(), det(), is_non_scalar(), and rows().

Referenced by cofactor().

                                            {
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  ASSERT (cols(m) == rows(m), "square matrix expected");
  ASSERT (i < rows(m), "index out of range");
  ASSERT (j < cols(m), "index out of range");
  return det (delete_col (delete_row (m, i), j));
}
series<C> mmx::fixed_point_series ( const routine &  fun,
const vector< C > &  c 
) [inline]

Definition at line 52 of file series_sugar.hpp.

References recursive().

Referenced by fixed_point_series(), GLUE_145(), GLUE_47(), GLUE_66(), and integrate_series().

                                                            {
  series_rep<C>* rep= new fixed_point_series_rep<C> (fun, c);
  return recursive (series<C> (rep));
}
series<C> mmx::fixed_point_series ( const routine &  fun,
const C &  c 
) [inline]

Definition at line 58 of file series_sugar.hpp.

References fixed_point_series().

                                                    {
  return fixed_point_series (fun, vec<C> (c));
}
series<vector<C> > mmx::fixed_point_series_vector ( const routine &  fun,
const vector< vector< C > > &  c 
) [inline]

Definition at line 88 of file series_sugar.hpp.

References recursive().

Referenced by fixed_point_series_vector(), and fixed_point_vector_series().

                                                                            {
  series_rep<vector<C> >* rep= new fixed_point_vector_series_rep<C> (fun, c);
  return recursive (series<vector<C> > (rep));
}
series<vector<C> > mmx::fixed_point_series_vector ( const routine &  fun,
const vector< C > &  c 
) [inline]

Definition at line 99 of file series_sugar.hpp.

References fixed_point_series_vector().

                                                                   {
  return fixed_point_series_vector (fun, vec<vector<C> > (c));
}
vector<series<C> > mmx::fixed_point_vector_series ( const routine &  fun,
const vector< vector< C > > &  c 
) [inline]
vector<series<C> > mmx::fixed_point_vector_series ( const routine &  fun,
const vector< C > &  c 
) [inline]

Definition at line 103 of file series_sugar.hpp.

References fixed_point_vector_series().

                                                                   {
  return fixed_point_vector_series (fun, vec<vector<C> > (c));
}
syntactic mmx::flatten ( const matrix< C, V > &  m)

Definition at line 338 of file matrix.hpp.

References cols(), flatten(), is_a_scalar(), and rows().

                          {
  if (is_a_scalar (m)) return flatten (m.scalar());
  int i, j, nr= rows(m), nc= cols(m);
  vector<syntactic> v;
  for (i=0; i<nr; i++) {
    vector<syntactic> h;
    for (j=0; j<nc; j++)
      h << flatten (m (i, j));
    v << apply (GEN_ROW, h);
  }
  return apply (GEN_SQTUPLE, v);
}
syntactic mmx::flatten ( const quotient< NT, DT > &  x)

Definition at line 161 of file quotient.hpp.

References denominator(), flatten(), and numerator().

                            {
  return flatten (numerator (x)) / flatten (denominator (x));
}
syntactic mmx::flatten ( const quotient_series< Series, Monomial > &  f) [inline]

Definition at line 108 of file quotient_series.hpp.

References flatten().

                                                         {
  return flatten (f->f) * flatten (f->m); }
syntactic flatten ( const series< C, V > &  f,
const syntactic &  z 
)

Definition at line 307 of file series.hpp.

References C, flatten(), and pow().

                                              {
  if (Series::get_formula_output ()) return f->expression (z);
  syntactic s= 0;
  nat order= Series::get_output_order ();
  for (nat i=0; i<order; i++) {
    (void) f[order-1];
    C coeff= f[i];
    s= s + flatten (coeff) * pow (z, i);
  }
  s= s + apply ("O", pow (z, syntactic (order)));
  return s;
}
syntactic mmx::flatten ( const algebraic< C, Extension > &  x)

Definition at line 136 of file algebraic.hpp.

References field(), and value().

Referenced by ldiv_mat_series_rep< C, V, W, U >::expression(), ldiv_sc_mat_series_rep< C, V, W, U >::expression(), carry_special_add_series_rep< C, V >::expression(), carry_add_quorem_series_rep< C, V >::expression(), carry_mul_quorem_series_rep< C, V, X >::expression(), lshiftz_series_vector_rep< C, V, W >::expression(), vector_series_rep< C, V, W >::expression(), vector_access_series_rep< C, V, W >::expression(), implicit_vector_series_rep< C, V >::expression(), implicit_series_rep< C, V >::expression(), fixed_point_vector_series_rep< C >::expression(), fixed_point_series_rep< C >::expression(), implementation< series_multiply, U, series_relaxed< W > >::mul_series_rep< C, V >::expression(), implementation< series_compose, U, series_naive >::reverse_series_rep< C, V >::expression(), implementation< series_compose, U, series_naive >::compose_series_rep< C, V >::expression(), implementation< series_abstractions, U, series_naive >::binary_series_rep< Op, C, V >::expression(), implementation< series_abstractions, U, series_naive >::unary_series_rep< Op, C, V >::expression(), implementation< series_recursive_abstractions, U, series_naive >::binary_scalar_recursive_series_rep< Op, C, V, X >::expression(), implementation< series_recursive_abstractions, U, series_naive >::binary_recursive_series_rep< Op, C, V >::expression(), implementation< series_recursive_abstractions, U, series_naive >::unary_recursive_series_rep< Op, C, V >::expression(), implementation< series_recursive_abstractions, U, series_naive >::nullary_recursive_series_rep< Op, C, V >::expression(), implementation< series_map_as_abstractions, U, series_naive >::unary_map_as_series_rep< Op, C, V, S, SV >::expression(), implementation< series_scalar_abstractions, U, series_naive >::ternary_scalar_series_rep< Op, C, V, X, Y >::expression(), implementation< series_scalar_abstractions, U, series_naive >::binary_scalar_series_rep< Op, C, V, X >::expression(), ldiv_mat_mat_series_rep< C, V, U >::expression(), ldiv_sc_mat_mat_series_rep< C, V, U, UU >::expression(), lshiftz_series_matrix_rep< C, V, U >::expression(), matrix_series_rep< C, V, U >::expression(), matrix_access_series_rep< C, V, U >::expression(), solver_container_series_rep< C, V >::expression(), known_series_rep< C, V, UV >::expression(), implementation< series_multiply, U, series_fast >::nrelax_mul_series_rep< C, V >::expression(), implementation< series_multiply, U, series_carry_relaxed< W > >::mul_series_rep< M, V >::expression(), implementation< series_divide, U, series_carry_naive >::div_series_rep< M, V >::expression(), implementation< series_divide, U, series_carry_naive >::rdiv_sc_series_rep< M, V, X >::expression(), implementation< series_divide, U, series_carry_naive >::carry_mul_sc_series_rep< M, V, X >::expression(), implementation< series_abstractions, U, series_carry_naive >::binary_series_rep< Op, M, V >::expression(), implementation< series_abstractions, U, series_carry_naive >::unary_series_rep< Op, M, V >::expression(), implementation< series_scalar_abstractions, U, series_carry_naive >::binary_scalar_series_rep< Op, M, V, X >::expression(), implementation< series_multiply, U, series_carry_blocks< W, s, BV, t > >::mul_series_rep< M, V >::expression(), binary_scalar_recursive_monoblock_series_rep< Op, M, V, s, BV, t, X >::expression(), truncate_mul_monoblock_series_rep< M, V, s, BV, t >::expression(), binary_monoblock_series_rep< Op, M, V, s, BV, t >::expression(), change_precision_series_rep< C, V >::expression(), deflate_series_rep< C, V >::expression(), dilate_series_rep< C, V >::expression(), q_difference_series_rep< C, V >::expression(), shift_series_rep< C, V >::expression(), integrate_series_rep< C, V >::expression(), xderive_series_rep< C, V >::expression(), derive_series_rep< C, V >::expression(), piecewise_series_rep< C, V >::expression(), restrict_series_rep< C, V >::expression(), lshiftz_series_rep< C, V >::expression(), lcm_series_rep< C, V >::expression(), gcd_series_rep< C, V >::expression(), map_series_rep< C, V, S, SV >::expression(), cast_series_rep< C, V, K, W >::expression(), slow_series_rep< C, V >::expression(), fast_series_rep< C, V >::expression(), polynomial_series_rep< C, V >::expression(), scalar_series_rep< C, V >::expression(), zero_series_rep::expression(), recursive_container_series_rep< C, V >::expression(), implementation< polynomial_gcd, X, polynomial_series< BV > >::inv_mod_polynomial_series_rep< C, U, V, W >::expression(), flatten(), and solver_series_rep< C, V >::name_component().

                             {
  return apply ("algebraic", flatten (value (x)), flatten (field (x)));
}
syntactic mmx::flatten ( const algebraic_number_extension< C, Ball > &  x) [inline]

Definition at line 91 of file algebraic_number.hpp.

References flatten().

                                               {
  return syn ("Field", flatten (x.ext.mp), flatten (x.x)); }
syntactic mmx::flatten ( const series< C, V > &  f)

Definition at line 321 of file series.hpp.

References flatten(), and var().

                          {
  return flatten (f, as_syntactic (var (f)));
}
syntactic mmx::flatten ( const unknown< C, V > &  c)

Definition at line 149 of file series_implicit.hpp.

References access(), and flatten().

                      {
  syntactic sum= flatten (c->b);
  for (nat i=c->i1; i<c->i2; i++) {
    nat k= i / c->f->m;
    nat j= i % c->f->m;
    sum= sum + flatten (c->s[i-c->i1]) *
               access (c->f->name_component (j), flatten (k));
  }
  return sum;
}
syntactic mmx::flatten ( const matrix< series< C, V >, U > &  m,
const syntactic &  z 
)

Definition at line 75 of file series_matrix.hpp.

References cols(), flatten(), and rows().

                                                     {
  syntactic g;
  nat i, j, nr= rows (m), nc= cols (m);
  matrix<syntactic,U> r (g, nr, nc);
  for (i=0; i<nr; i++)
    for (j=0; j<nc; j++)
      r (i, j)= flatten (m (i, j), z);
  return flatten (r);
}
syntactic mmx::flatten ( const algebraic_extension< C > &  x) [inline]

Definition at line 71 of file algebraic_extension.hpp.

References flatten().

                                                   {
  return syn ("Extension", flatten (x.mp)); }
syntactic mmx::flatten ( const modulus< polynomial< C, PV >, MV > &  c) [inline]

Definition at line 81 of file modular_polynomial.hpp.

References flatten(), and polynomial< C, V >::get_variable_name().

                                                  {
  generic x= polynomial<C, PV>::get_variable_name ();
  generic a= gen (GEN_PRIME, x);
  if (x == "x") a= "a";
  if (x == "y") a= "b";
  if (x == "z") a= "c";
  return flatten (*c, as_syntactic (a)); 
}
syntactic mmx::flatten ( const modular< modulus< polynomial< C, PV >, MW >, MV > &  c) [inline]

Definition at line 71 of file modular_polynomial.hpp.

References flatten(), and polynomial< C, V >::get_variable_name().

                                                               {
  generic x= polynomial<C, PV>::get_variable_name ();
  generic a= gen (GEN_PRIME, x);
  if (x == "x") a= "a";
  if (x == "y") a= "b";
  if (x == "z") a= "c";
  return flatten (*c, as_syntactic (a)); 
}
syntactic mmx::flatten ( const vector< series< C, V >, W > &  v,
const syntactic &  z 
)

Definition at line 84 of file series_vector.hpp.

References flatten(), and N().

                                                     {
  syntactic g;
  nat i, n= N(v);
  vector<syntactic,W> r (g, n);
  for (i=0; i<n; i++)
    r[i]= flatten (v[i], z);
  return flatten (r);
}
syntactic mmx::flatten ( const permutation &  p) [inline]

Definition at line 65 of file permutation.hpp.

References flatten(), and iterate().

                               {
  return flatten (syntactic ("permutation"), iterate (*p));
}
syntactic mmx::flatten ( const polynomial< C, V > &  P,
const syntactic &  v 
)

Definition at line 307 of file polynomial.hpp.

References deg(), flatten(), and pow().

                                                  {
  int i, len= deg(P);
  syntactic s= 0;
  for (i=len; i>=0; i--)
    s= s + flatten (P[i]) * pow (v, i);
  return s;
}
syntactic mmx::flatten ( const polynomial< C, V > &  P)

Definition at line 316 of file polynomial.hpp.

References flatten(), and var().

                              {
  return flatten (P, as_syntactic (var (P)));
}
series< matrix<C,U> ,V> mmx::from_matrix ( const matrix< series< C, V >, U > &  m)

Definition at line 122 of file series_matrix.hpp.

                                     {
  return (series_rep<Matrix,V>*) new matrix_series_rep<C,V,U> (m);
}
series<M,V> mmx::from_monoblock ( const series< modular< modulus< Lift_type(M)>, modular_global_series_carry_monoblock< M, s, BV > >, BV > &  f,
const series_carry_monoblock_transformer< M, V, s, BV > &  blocker 
)
series< vector<C,W> ,V> mmx::from_vector ( const vector< series< C, V >, W > &  v)

Definition at line 128 of file series_vector.hpp.

Referenced by fixed_point_vector_series_rep< C >::initialize().

                                     {
  return (series_rep<Vector,V>*) new vector_series_rep<C,V,W> (v);
}
algebraic_number mmx::gaussian ( const algebraic_real &  x,
const algebraic_real &  y 
) [inline]

Definition at line 407 of file algebraic_number.hpp.

References times_i().

Referenced by GLUE_53(), and primitive_root_helper< C >::op().

                                                            {
  return algebraic_number (x) + times_i (algebraic_number (y));
}
polynomial<C,V> mmx::gcd ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2,
polynomial< C, V > &  U1 
) [inline]

Definition at line 810 of file polynomial.hpp.

References CF(), gcd(), and Polynomial.

                                                                 {
  Polynomial U2(0); U1= promote (1, CF(P1));
  return gcd (P1, P2, U1, U2);
}
polynomial<C,V> mmx::gcd ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
) [inline]

Definition at line 816 of file polynomial.hpp.

References gcd().

                                                 {
  typedef implementation<polynomial_gcd,V> Pol;
  return Pol::gcd (P1, P2);
}
static vector< polynomial<C,V> > mmx::gcd ( const polynomial< C, V > &  p,
const vector< polynomial< C, V > > &  q 
) [static]

Definition at line 822 of file polynomial.hpp.

                                                       {
  typedef implementation<polynomial_evaluate,V> Pol;
  return Pol::multi_gcd (p, q);
}
series<C,V> mmx::gcd ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 768 of file series.hpp.

References Series_rep.

                                       {
  return (Series_rep*) new gcd_series_rep<C,V> (f, g);
}
mmx::GCD_SUGAR ( template< typename NT, typename DT >  ,
quotient< NT, DT >   
)
vector<generic> mmx::gen_fixed_point_vector_series ( const routine &  fun,
const vector< C > &  c 
) [inline]

Definition at line 108 of file series_sugar.hpp.

References fixed_point_vector_series().

Referenced by gen_integrate_vector_series(), GLUE_146(), GLUE_48(), and GLUE_67().

                                                                       {
  return as<vector<generic> > (fixed_point_vector_series (fun, c));
}
vector<generic> mmx::gen_implicit_vector_series ( const routine &  fun,
const vector< C > &  c 
) [inline]

Definition at line 201 of file series_sugar.hpp.

References implicit_vector_series().

Referenced by GLUE_150(), GLUE_52(), and GLUE_71().

                                                                    {
  return as<vector<generic> > (implicit_vector_series (fun, c));
}
vector<generic> mmx::gen_integrate_vector_series ( const routine &  fun,
const vector< C > &  c 
) [inline]

Definition at line 113 of file series_sugar.hpp.

References gen_fixed_point_vector_series(), and integrate().

Referenced by GLUE_148(), GLUE_50(), and GLUE_69().

                                                                     {
  return gen_fixed_point_vector_series (integrate (fun), c);
}
format< matrix<C,U> > mmx::get_matrix_format ( const matrix< series< C, V >, U > &  m)

Definition at line 86 of file series_matrix.hpp.

References C, CF(), cols(), Matrix, and rows().

                                           {
  format<Series > fm1= CF(m);
  format<C> fm2= get_format1 (fm1);
  C zero= promote (0, fm2);
  Matrix r (zero, rows (m), cols (m));
  return get_format (r);
}
format< vector<C,W> > mmx::get_vector_format ( const vector< series< C, V >, W > &  v)

Definition at line 94 of file series_vector.hpp.

References C, CF(), N(), and Vector.

                                           {
  format<Series > fm1= CF(v);
  format<C> fm2= get_format1 (fm1);
  C zero= promote (0, fm2);
  Vector r (zero, N(v));
  return get_format (r);
}
static vector<int> mmx::GLUE_1 ( const vector< integer > &  arg_1) [static]

Definition at line 72 of file glue_matrix_integer.cpp.

References arg_1.

                                        {
    return as<vector<int> > (arg_1);
  }
static row_tuple<mmx_modular(integer) > mmx::GLUE_1 ( const tuple< mmx_modular(integer) > &  arg_1) [static]

Definition at line 76 of file glue_matrix_modular_integer.cpp.

References arg_1, and as_vector().

                                                     {
    return row_tuple<mmx_modular(integer) > (as_vector (arg_1));
  }
static vector<rational> mmx::GLUE_1 ( const vector< int > &  arg_1) [static]

Definition at line 74 of file glue_matrix_rational.cpp.

References arg_1.

                                    {
    return as<vector<rational> > (arg_1);
  }
static void mmx::GLUE_1 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 34 of file glue_p_adic_modular_integer.cpp.

References arg_2, and set_variable_name().

static permutation mmx::GLUE_1 ( const tuple< int > &  arg_1) [static]

Definition at line 14 of file glue_permutation.cpp.

References as_vector().

                                   {
    return permutation (as_vector (arg_1));
  }
static polynomial<generic> mmx::GLUE_1 ( const tuple< generic > &  arg_1) [static]

Definition at line 28 of file glue_polynomial_generic.cpp.

References as_vector(), and polynomial_reverse().

static polynomial<integer> mmx::GLUE_1 ( const tuple< integer > &  arg_1) [static]

Definition at line 30 of file glue_polynomial_integer.cpp.

References as_vector(), and polynomial_reverse().

static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_1 ( const tuple< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]
static polynomial<rational> mmx::GLUE_1 ( const tuple< rational > &  arg_1) [static]

Definition at line 34 of file glue_polynomial_rational.cpp.

References as_vector(), and polynomial_reverse().

static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_1 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 35 of file glue_quotient_polynomial_rational.cpp.

References simple_quotient.

                                                                                {
    return (simple_quotient(polynomial<rational> ) (arg_1, arg_2));
  }
static generic mmx::GLUE_1 ( const integer &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 37 of file glue_series_integer.cpp.

                                                      {
    return integer_pow (arg_1, arg_2);
  }
static void mmx::GLUE_1 ( const series< rational > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 42 of file glue_series_rational.cpp.

References arg_2, and set_variable_name().

static algebraic_real mmx::GLUE_1 ( const polynomial< rational > &  arg_1,
const mmx_ball(mmx_floating, mmx_floating)&  arg_2 
) [static]

Definition at line 41 of file glue_algebraic_number.cpp.

                                                                                                {
    return algebraic_real (arg_1, arg_2);
  }
static generic mmx::GLUE_1 ( const int &  arg_1) [static]

Definition at line 72 of file glue_matrix_generic.cpp.

                            {
    return integer_construct (arg_1);
  }
static int mmx::GLUE_10 ( const matrix< integer > &  arg_1) [static]

Definition at line 117 of file glue_matrix_integer.cpp.

References rows().

                                         {
    return rows (arg_1);
  }
static int mmx::GLUE_10 ( const matrix< rational > &  arg_1) [static]

Definition at line 119 of file glue_matrix_rational.cpp.

References cols().

                                          {
    return cols (arg_1);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_10 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1) [static]

Definition at line 79 of file glue_p_adic_modular_integer.cpp.

References arg_1.

                                                              {
    return -arg_1;
  }
static permutation mmx::GLUE_10 ( const permutation &  arg_1,
const permutation &  arg_2 
) [static]

Definition at line 59 of file glue_permutation.cpp.

References arg_2.

                                                               {
    return arg_1 * arg_2;
  }
static polynomial<generic> mmx::GLUE_10 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 73 of file glue_polynomial_generic.cpp.

References arg_2.

                                                                               {
    return arg_1 + arg_2;
  }
static polynomial<integer> mmx::GLUE_10 ( const polynomial< integer > &  arg_1) [static]

Definition at line 75 of file glue_polynomial_integer.cpp.

References square().

                                             {
    return square (arg_1);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_10 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 102 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1, and square().

                                                                           {
    return square (arg_1);
  }
static polynomial<rational> mmx::GLUE_10 ( const polynomial< rational > &  arg_1) [static]

Definition at line 79 of file glue_polynomial_rational.cpp.

References square().

                                              {
    return square (arg_1);
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_10 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1,
const quotient< polynomial< rational >, polynomial< rational > > &  arg_2 
) [static]

Definition at line 80 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                                     {
    return arg_1 - arg_2;
  }
static polynomial<generic> mmx::GLUE_10 ( const series< generic > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 82 of file glue_series_generic.cpp.

References range().

                                                                             {
    return range (arg_1, arg_2, arg_3);
  }
static integer mmx::GLUE_10 ( const series< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 82 of file glue_series_integer.cpp.

References arg_2.

                                                           {
    return arg_1[arg_2];
  }
static iterator<generic> mmx::GLUE_10 ( const series< mmx_modular(integer) > &  arg_1) [static]

Definition at line 93 of file glue_series_modular_integer.cpp.

References iterate().

                                                       {
    return as<iterator<generic> > (iterate (arg_1));
  }
static polynomial<rational> mmx::GLUE_10 ( const series< rational > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 87 of file glue_series_rational.cpp.

References range().

                                                                              {
    return range (arg_1, arg_2, arg_3);
  }
static alias<vector<int> > mmx::GLUE_10 ( const alias< vector< int > > &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 59 of file glue_vector_int.cpp.

                                                                       {
    return alias_write (arg_1, arg_2);
  }
static alias<vector<integer> > mmx::GLUE_10 ( const alias< vector< integer > > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 55 of file glue_vector_integer.cpp.

References arg_1.

                                                                               {
    return alias_write (arg_1, arg_2);
  }
static alias<vector<rational> > mmx::GLUE_10 ( const alias< vector< rational > > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 57 of file glue_vector_rational.cpp.

References arg_1.

                                                                                 {
    return alias_write (arg_1, arg_2);
  }
static algebraic_real mmx::GLUE_10 ( const algebraic_real &  arg_1,
const algebraic_real &  arg_2 
) [static]

Definition at line 86 of file glue_algebraic_number.cpp.

References arg_2.

                                                                     {
    return arg_1 + arg_2;
  }
static alias<generic> mmx::GLUE_10 ( const alias< matrix< generic > > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 117 of file glue_matrix_generic.cpp.

References arg_1, and arg_2.

                                                                                     {
    return alias_access<generic > (arg_1, arg_2, arg_3);
  }
static matrix<complex<rational> > mmx::GLUE_100 ( const matrix< complex< rational > > &  arg_1,
const matrix< complex< rational > > &  arg_2 
) [static]

Definition at line 569 of file glue_matrix_rational.cpp.

References arg_1, arg_2, and krylov().

Referenced by glue_matrix_rational(), and glue_series_rational().

                                                                                              {
    return krylov (arg_1, arg_2);
  }
static void mmx::GLUE_100 ( const series< unknown< rational > > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 537 of file glue_series_rational.cpp.

References arg_1, arg_2, and set_variable_name().

static complex<rational> mmx::GLUE_101 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 574 of file glue_matrix_rational.cpp.

References arg_1, and det().

Referenced by glue_matrix_rational(), and glue_series_rational().

                                                     {
    return det (arg_1);
  }
static void mmx::GLUE_101 ( const series< unknown< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 542 of file glue_series_rational.cpp.

References arg_1, and set_output_order().

static matrix<complex<rational> > mmx::GLUE_102 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 579 of file glue_matrix_rational.cpp.

References arg_1, and row_echelon().

Referenced by glue_matrix_rational(), and glue_series_rational().

                                                     {
    return row_echelon (arg_1);
  }
static void mmx::GLUE_102 ( const series< unknown< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 547 of file glue_series_rational.cpp.

References arg_1, and set_cancel_order().

static matrix<complex<rational> > mmx::GLUE_103 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 584 of file glue_matrix_rational.cpp.

References arg_1, and column_echelon().

Referenced by glue_matrix_rational(), and glue_series_rational().

                                                     {
    return column_echelon (arg_1);
  }
static void mmx::GLUE_103 ( const series< unknown< rational > > &  arg_1,
const bool &  arg_2 
) [static]

Definition at line 552 of file glue_series_rational.cpp.

References arg_1, and set_formula_output().

static series<unknown<rational> > mmx::GLUE_104 ( const tuple< unknown< rational > > &  arg_1) [static]

Definition at line 557 of file glue_series_rational.cpp.

References arg_1, and as_vector().

                                                    {
    return series<unknown<rational> > (as_vector (arg_1));
  }
static matrix<complex<rational> > mmx::GLUE_104 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 589 of file glue_matrix_rational.cpp.

References arg_1, and row_reduced_echelon().

Referenced by glue_matrix_rational(), and glue_series_rational().

                                                     {
    return row_reduced_echelon (arg_1);
  }
static matrix<complex<rational> > mmx::GLUE_105 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 594 of file glue_matrix_rational.cpp.

References arg_1, and column_reduced_echelon().

Referenced by glue_matrix_rational(), and glue_series_rational().

static series<unknown<rational> > mmx::GLUE_105 ( const unknown< rational > &  arg_1) [static]

Definition at line 562 of file glue_series_rational.cpp.

References arg_1.

                                            {
    return series<unknown<rational> > (arg_1);
  }
static vector<generic> mmx::GLUE_106 ( const matrix< complex< rational > > &  arg_1) [static]
static iterator<generic> mmx::GLUE_106 ( const series< unknown< rational > > &  arg_1) [static]

Definition at line 567 of file glue_series_rational.cpp.

References arg_1, and iterate().

                                                     {
    return as<iterator<generic> > (iterate (arg_1));
  }
static vector<generic> mmx::GLUE_107 ( const matrix< complex< rational > > &  arg_1) [static]
static unknown<rational> mmx::GLUE_107 ( const series< unknown< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 572 of file glue_series_rational.cpp.

References arg_1, and arg_2.

                                                                       {
    return arg_1[arg_2];
  }
static vector<generic> mmx::GLUE_108 ( const matrix< complex< rational > > &  arg_1) [static]
static series<unknown<rational> > mmx::GLUE_108 ( const series< unknown< rational > > &  arg_1) [static]

Definition at line 577 of file glue_series_rational.cpp.

References arg_1.

                                                     {
    return -arg_1;
  }
static matrix<complex<rational> > mmx::GLUE_109 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 614 of file glue_matrix_rational.cpp.

References arg_1, and kernel().

Referenced by glue_matrix_rational(), and glue_series_rational().

                                                     {
    return kernel (arg_1);
  }
static series<unknown<rational> > mmx::GLUE_109 ( const series< unknown< rational > > &  arg_1) [static]

Definition at line 582 of file glue_series_rational.cpp.

References arg_1, and square().

                                                     {
    return square (arg_1);
  }
static int mmx::GLUE_11 ( const matrix< integer > &  arg_1) [static]

Definition at line 122 of file glue_matrix_integer.cpp.

References cols().

                                         {
    return cols (arg_1);
  }
static rational mmx::GLUE_11 ( const matrix< rational > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 124 of file glue_matrix_rational.cpp.

References arg_1.

                                                                              {
    return arg_1 (arg_2, arg_3);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_11 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1) [static]

Definition at line 84 of file glue_p_adic_modular_integer.cpp.

References square().

                                                              {
    return square (arg_1);
  }
static permutation mmx::GLUE_11 ( const permutation &  arg_1) [static]

Definition at line 64 of file glue_permutation.cpp.

References invert().

                                     {
    return invert (arg_1);
  }
static polynomial<generic> mmx::GLUE_11 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 78 of file glue_polynomial_generic.cpp.

References arg_2.

                                                                               {
    return arg_1 - arg_2;
  }
static polynomial<integer> mmx::GLUE_11 ( const polynomial< integer > &  arg_1,
const polynomial< integer > &  arg_2 
) [static]

Definition at line 80 of file glue_polynomial_integer.cpp.

References arg_2.

                                                                               {
    return arg_1 + arg_2;
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_11 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 107 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1, and arg_2.

                                                                                                                                           {
    return arg_1 + arg_2;
  }
static polynomial<rational> mmx::GLUE_11 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 84 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                                 {
    return arg_1 + arg_2;
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_11 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1,
const quotient< polynomial< rational >, polynomial< rational > > &  arg_2 
) [static]

Definition at line 85 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                                     {
    return arg_1 * arg_2;
  }
static series<generic> mmx::GLUE_11 ( const series< generic > &  arg_1) [static]

Definition at line 87 of file glue_series_generic.cpp.

References arg_1.

                                         {
    return -arg_1;
  }
static polynomial<integer> mmx::GLUE_11 ( const series< integer > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 87 of file glue_series_integer.cpp.

References range().

                                                                             {
    return range (arg_1, arg_2, arg_3);
  }
static series<rational> mmx::GLUE_11 ( const series< rational > &  arg_1) [static]

Definition at line 92 of file glue_series_rational.cpp.

References arg_1.

                                          {
    return -arg_1;
  }
static vector<int> mmx::GLUE_11 ( const int &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 64 of file glue_vector_int.cpp.

                                                       {
    return cons (arg_1, arg_2);
  }
static vector<integer> mmx::GLUE_11 ( const integer &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 60 of file glue_vector_integer.cpp.

                                                               {
    return cons (arg_1, arg_2);
  }
static vector<rational> mmx::GLUE_11 ( const rational &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 62 of file glue_vector_rational.cpp.

                                                                 {
    return cons (arg_1, arg_2);
  }
static matrix<generic> mmx::GLUE_11 ( const matrix< generic > &  arg_1,
const int &  arg_2,
const int &  arg_3,
const int &  arg_4,
const int &  arg_5 
) [static]

Definition at line 122 of file glue_matrix_generic.cpp.

References range().

                                                                                                                 {
    return range (arg_1, arg_2, arg_3, arg_4, arg_5);
  }
static matrix<complex<rational> > mmx::GLUE_110 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 619 of file glue_matrix_rational.cpp.

References arg_1, and image().

Referenced by glue_matrix_rational(), and glue_series_rational().

                                                     {
    return image (arg_1);
  }
static series<unknown<rational> > mmx::GLUE_110 ( const series< unknown< rational > > &  arg_1,
const series< unknown< rational > > &  arg_2 
) [static]

Definition at line 587 of file glue_series_rational.cpp.

References arg_1, and arg_2.

                                                                                              {
    return arg_1 + arg_2;
  }
static int mmx::GLUE_111 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 624 of file glue_matrix_rational.cpp.

References arg_1, and rank().

Referenced by glue_matrix_rational(), and glue_series_rational().

                                                     {
    return rank (arg_1);
  }
static series<unknown<rational> > mmx::GLUE_111 ( const series< unknown< rational > > &  arg_1,
const series< unknown< rational > > &  arg_2 
) [static]

Definition at line 592 of file glue_series_rational.cpp.

References arg_1, and arg_2.

                                                                                              {
    return arg_1 - arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_112 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 629 of file glue_matrix_rational.cpp.

References arg_1, and invert().

Referenced by glue_matrix_rational(), and glue_series_rational().

                                                     {
    return invert (arg_1);
  }
static series<unknown<rational> > mmx::GLUE_112 ( const series< unknown< rational > > &  arg_1,
const series< unknown< rational > > &  arg_2 
) [static]

Definition at line 597 of file glue_series_rational.cpp.

References arg_1, and arg_2.

                                                                                              {
    return arg_1 * arg_2;
  }
static series<unknown<rational> > mmx::GLUE_113 ( const unknown< rational > &  arg_1,
const series< unknown< rational > > &  arg_2 
) [static]

Definition at line 602 of file glue_series_rational.cpp.

References arg_2.

Referenced by glue_series_rational().

                                                                                     {
    return arg_1 + arg_2;
  }
static series<unknown<rational> > mmx::GLUE_114 ( const series< unknown< rational > > &  arg_1,
const unknown< rational > &  arg_2 
) [static]

Definition at line 607 of file glue_series_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_series_rational().

                                                                                     {
    return arg_1 + arg_2;
  }
static series<unknown<rational> > mmx::GLUE_115 ( const unknown< rational > &  arg_1,
const series< unknown< rational > > &  arg_2 
) [static]

Definition at line 612 of file glue_series_rational.cpp.

References arg_2.

Referenced by glue_series_rational().

                                                                                     {
    return arg_1 - arg_2;
  }
static series<unknown<rational> > mmx::GLUE_116 ( const series< unknown< rational > > &  arg_1,
const unknown< rational > &  arg_2 
) [static]

Definition at line 617 of file glue_series_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_series_rational().

                                                                                     {
    return arg_1 - arg_2;
  }
static series<unknown<rational> > mmx::GLUE_117 ( const unknown< rational > &  arg_1,
const series< unknown< rational > > &  arg_2 
) [static]

Definition at line 622 of file glue_series_rational.cpp.

References arg_2.

Referenced by glue_series_rational().

                                                                                     {
    return arg_1 * arg_2;
  }
static series<unknown<rational> > mmx::GLUE_118 ( const series< unknown< rational > > &  arg_1,
const unknown< rational > &  arg_2 
) [static]

Definition at line 627 of file glue_series_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_series_rational().

                                                                                     {
    return arg_1 * arg_2;
  }
static series<unknown<rational> > mmx::GLUE_119 ( const series< unknown< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 632 of file glue_series_rational.cpp.

References arg_1.

Referenced by glue_series_rational().

                                                                       {
    return binpow (arg_1, arg_2);
  }
static integer mmx::GLUE_12 ( const matrix< integer > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 127 of file glue_matrix_integer.cpp.

References arg_1.

                                                                             {
    return arg_1 (arg_2, arg_3);
  }
static alias<rational> mmx::GLUE_12 ( const alias< matrix< rational > > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 129 of file glue_matrix_rational.cpp.

References arg_1, and arg_2.

                                                                                      {
    return alias_access<rational > (arg_1, arg_2, arg_3);
  }
static integer mmx::GLUE_12 ( const vector< integer > &  arg_1) [static]

Definition at line 65 of file glue_vector_integer.cpp.

                                         {
    return car (arg_1);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_12 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 89 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                 {
    return arg_1 + arg_2;
  }
static polynomial<generic> mmx::GLUE_12 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 83 of file glue_polynomial_generic.cpp.

References arg_2.

                                                                               {
    return arg_1 * arg_2;
  }
static polynomial<integer> mmx::GLUE_12 ( const polynomial< integer > &  arg_1,
const polynomial< integer > &  arg_2 
) [static]

Definition at line 85 of file glue_polynomial_integer.cpp.

References arg_2.

                                                                               {
    return arg_1 - arg_2;
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_12 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 112 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1, and arg_2.

                                                                                                                                           {
    return arg_1 - arg_2;
  }
static rational mmx::GLUE_12 ( const vector< rational > &  arg_1) [static]

Definition at line 67 of file glue_vector_rational.cpp.

                                          {
    return car (arg_1);
  }
static polynomial<rational> mmx::GLUE_12 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 89 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                                 {
    return arg_1 - arg_2;
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_12 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1,
const quotient< polynomial< rational >, polynomial< rational > > &  arg_2 
) [static]

Definition at line 90 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                                     {
    return arg_1 / arg_2;
  }
static series<generic> mmx::GLUE_12 ( const series< generic > &  arg_1) [static]

Definition at line 92 of file glue_series_generic.cpp.

References square().

                                         {
    return square (arg_1);
  }
static series<integer> mmx::GLUE_12 ( const series< integer > &  arg_1) [static]

Definition at line 92 of file glue_series_integer.cpp.

References arg_1.

                                         {
    return -arg_1;
  }
static series<rational> mmx::GLUE_12 ( const series< rational > &  arg_1) [static]

Definition at line 97 of file glue_series_rational.cpp.

References square().

                                          {
    return square (arg_1);
  }
static int mmx::GLUE_12 ( const vector< int > &  arg_1) [static]

Definition at line 69 of file glue_vector_int.cpp.

                                     {
    return car (arg_1);
  }
static vector<generic> mmx::GLUE_12 ( const matrix< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 127 of file glue_matrix_generic.cpp.

References row().

                                                           {
    return row (arg_1, arg_2);
  }
static series<unknown<rational> > mmx::GLUE_120 ( const series< unknown< rational > > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 637 of file glue_series_rational.cpp.

References arg_1.

Referenced by glue_series_rational().

                                                                           {
    return binpow (arg_1, arg_2);
  }
static series<unknown<rational> > mmx::GLUE_121 ( const series< unknown< rational > > &  arg_1) [static]

Definition at line 642 of file glue_series_rational.cpp.

References arg_1, and derive().

Referenced by glue_series_rational().

                                                     {
    return derive (arg_1);
  }
static series<unknown<rational> > mmx::GLUE_122 ( const series< unknown< rational > > &  arg_1) [static]

Definition at line 647 of file glue_series_rational.cpp.

References arg_1, and xderive().

Referenced by glue_series_rational().

                                                     {
    return xderive (arg_1);
  }
static series<unknown<rational> > mmx::GLUE_123 ( const series< unknown< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 652 of file glue_series_rational.cpp.

References arg_1, and dilate().

Referenced by glue_series_rational().

                                                                       {
    return dilate (arg_1, arg_2);
  }
static series<unknown<rational> > mmx::GLUE_124 ( const series< unknown< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 657 of file glue_series_rational.cpp.

References arg_1, and lshiftz().

Referenced by glue_series_rational().

                                                                       {
    return lshiftz (arg_1, arg_2);
  }
static series<unknown<rational> > mmx::GLUE_125 ( const series< unknown< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 662 of file glue_series_rational.cpp.

References arg_1, and rshiftz().

Referenced by glue_series_rational().

                                                                       {
    return rshiftz (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_126 ( const series< complex< rational > > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 667 of file glue_series_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_series_rational().

                                                                                              {
    return arg_1 / arg_2;
  }
static series<complex<rational> > mmx::GLUE_127 ( const complex< rational > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 672 of file glue_series_rational.cpp.

References arg_2.

Referenced by glue_series_rational().

                                                                                     {
    return arg_1 / arg_2;
  }
static series<complex<rational> > mmx::GLUE_128 ( const series< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 677 of file glue_series_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_series_rational().

                                                                                     {
    return arg_1 / arg_2;
  }
static series<complex<rational> > mmx::GLUE_129 ( const series< complex< rational > > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 682 of file glue_series_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_series_rational().

                                                                                              {
    return arg_1 / arg_2;
  }
static alias<integer> mmx::GLUE_13 ( const alias< matrix< integer > > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 132 of file glue_matrix_integer.cpp.

References arg_1, and arg_2.

                                                                                     {
    return alias_access<integer > (arg_1, arg_2, arg_3);
  }
static matrix<rational> mmx::GLUE_13 ( const matrix< rational > &  arg_1,
const int &  arg_2,
const int &  arg_3,
const int &  arg_4,
const int &  arg_5 
) [static]

Definition at line 134 of file glue_matrix_rational.cpp.

References range().

                                                                                                                  {
    return range (arg_1, arg_2, arg_3, arg_4, arg_5);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_13 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 94 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                 {
    return arg_1 - arg_2;
  }
static polynomial<generic> mmx::GLUE_13 ( const polynomial< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 88 of file glue_polynomial_generic.cpp.

                                                               {
    return binpow (arg_1, arg_2);
  }
static polynomial<integer> mmx::GLUE_13 ( const polynomial< integer > &  arg_1,
const polynomial< integer > &  arg_2 
) [static]

Definition at line 90 of file glue_polynomial_integer.cpp.

References arg_2.

                                                                               {
    return arg_1 * arg_2;
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_13 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 117 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1, and arg_2.

                                                                                                                                           {
    return arg_1 * arg_2;
  }
static polynomial<rational> mmx::GLUE_13 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 94 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                                 {
    return arg_1 * arg_2;
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_13 ( const polynomial< rational > &  arg_1,
const quotient< polynomial< rational >, polynomial< rational > > &  arg_2 
) [static]

Definition at line 95 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                   {
    return arg_1 + arg_2;
  }
static series<generic> mmx::GLUE_13 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 97 of file glue_series_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 + arg_2;
  }
static series<integer> mmx::GLUE_13 ( const series< integer > &  arg_1) [static]

Definition at line 97 of file glue_series_integer.cpp.

References square().

                                         {
    return square (arg_1);
  }
static series<rational> mmx::GLUE_13 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 102 of file glue_series_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 + arg_2;
  }
static vector<int> mmx::GLUE_13 ( const vector< int > &  arg_1) [static]

Definition at line 74 of file glue_vector_int.cpp.

                                     {
    return cdr (arg_1);
  }
static vector<integer> mmx::GLUE_13 ( const vector< integer > &  arg_1) [static]

Definition at line 70 of file glue_vector_integer.cpp.

                                         {
    return cdr (arg_1);
  }
static vector<rational> mmx::GLUE_13 ( const vector< rational > &  arg_1) [static]

Definition at line 72 of file glue_vector_rational.cpp.

                                          {
    return cdr (arg_1);
  }
static vector<generic> mmx::GLUE_13 ( const matrix< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 132 of file glue_matrix_generic.cpp.

References column().

                                                           {
    return column (arg_1, arg_2);
  }
static bool mmx::GLUE_130 ( const series< complex< rational > > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 687 of file glue_series_rational.cpp.

References arg_1, arg_2, and divides().

Referenced by glue_series_rational().

                                                                                              {
    return divides (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_131 ( const series< complex< rational > > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 692 of file glue_series_rational.cpp.

References arg_1, arg_2, and gcd().

Referenced by glue_series_rational().

                                                                                              {
    return gcd (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_132 ( const series< complex< rational > > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 697 of file glue_series_rational.cpp.

References arg_1, arg_2, and lcm().

Referenced by glue_series_rational().

                                                                                              {
    return lcm (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_133 ( const series< complex< rational > > &  arg_1) [static]

Definition at line 702 of file glue_series_rational.cpp.

References arg_1, and integrate().

Referenced by glue_series_rational().

                                                     {
    return integrate (arg_1);
  }
static series<complex<rational> > mmx::GLUE_134 ( const series< complex< rational > > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 707 of file glue_series_rational.cpp.

References arg_1, arg_2, and compose().

Referenced by glue_series_rational().

                                                                                              {
    return compose (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_135 ( const series< complex< rational > > &  arg_1) [static]

Definition at line 712 of file glue_series_rational.cpp.

References arg_1, and reverse().

Referenced by glue_series_rational().

                                                     {
    return reverse (arg_1);
  }
static series<complex<rational> > mmx::GLUE_136 ( const series< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 717 of file glue_series_rational.cpp.

References arg_1, and q_difference().

Referenced by glue_series_rational().

                                                                                     {
    return q_difference (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_137 ( const series< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 722 of file glue_series_rational.cpp.

References arg_1, and series_shift_default.

Referenced by glue_series_rational().

static series<complex<rational> > mmx::GLUE_138 ( const series< complex< rational > > &  arg_1,
const complex< rational > &  arg_2,
const int &  arg_3 
) [static]

Definition at line 727 of file glue_series_rational.cpp.

References arg_1, and shift().

Referenced by glue_series_rational().

                                                                                                       {
    return shift (arg_1, arg_2, arg_3);
  }
static series<complex<rational> > mmx::GLUE_139 ( const series< integer > &  arg_1) [static]

Definition at line 732 of file glue_series_rational.cpp.

References arg_1.

Referenced by glue_series_rational().

                                          {
    return as<series<complex<rational> > > (arg_1);
  }
static matrix<integer> mmx::GLUE_14 ( const matrix< integer > &  arg_1,
const int &  arg_2,
const int &  arg_3,
const int &  arg_4,
const int &  arg_5 
) [static]

Definition at line 137 of file glue_matrix_integer.cpp.

References range().

                                                                                                                 {
    return range (arg_1, arg_2, arg_3, arg_4, arg_5);
  }
static vector<rational> mmx::GLUE_14 ( const matrix< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 139 of file glue_matrix_rational.cpp.

References row().

                                                            {
    return row (arg_1, arg_2);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_14 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 99 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                 {
    return arg_1 * arg_2;
  }
static polynomial<generic> mmx::GLUE_14 ( const polynomial< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 93 of file glue_polynomial_generic.cpp.

References lshiftz().

                                                               {
    return lshiftz (arg_1, arg_2);
  }
static polynomial<integer> mmx::GLUE_14 ( const integer &  arg_1,
const polynomial< integer > &  arg_2 
) [static]

Definition at line 95 of file glue_polynomial_integer.cpp.

References arg_2.

                                                                   {
    return arg_1 + arg_2;
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_14 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 122 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                              {
    return arg_1 + arg_2;
  }
static polynomial<rational> mmx::GLUE_14 ( const rational &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 99 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                     {
    return arg_1 + arg_2;
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_14 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 100 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                   {
    return arg_1 + arg_2;
  }
static series<generic> mmx::GLUE_14 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 102 of file glue_series_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 - arg_2;
  }
static series<integer> mmx::GLUE_14 ( const series< integer > &  arg_1,
const series< integer > &  arg_2 
) [static]

Definition at line 102 of file glue_series_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 + arg_2;
  }
static series<rational> mmx::GLUE_14 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 107 of file glue_series_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 - arg_2;
  }
static bool mmx::GLUE_14 ( const vector< int > &  arg_1) [static]

Definition at line 79 of file glue_vector_int.cpp.

                                     {
    return is_nil (arg_1);
  }
static bool mmx::GLUE_14 ( const vector< integer > &  arg_1) [static]

Definition at line 75 of file glue_vector_integer.cpp.

                                         {
    return is_nil (arg_1);
  }
static bool mmx::GLUE_14 ( const vector< rational > &  arg_1) [static]

Definition at line 77 of file glue_vector_rational.cpp.

                                          {
    return is_nil (arg_1);
  }
static matrix<generic> mmx::GLUE_14 ( const matrix< generic > &  arg_1) [static]

Definition at line 137 of file glue_matrix_generic.cpp.

References transpose().

                                         {
    return transpose (arg_1);
  }
static series<unknown<rational> > mmx::GLUE_140 ( const series< integer > &  arg_1) [static]

Definition at line 737 of file glue_series_rational.cpp.

References arg_1.

Referenced by glue_series_rational().

                                          {
    return as<series<unknown<rational> > > (arg_1);
  }
static series<complex<rational> > mmx::GLUE_141 ( const series< rational > &  arg_1) [static]

Definition at line 742 of file glue_series_rational.cpp.

References arg_1.

Referenced by glue_series_rational().

                                           {
    return as<series<complex<rational> > > (arg_1);
  }
static series<unknown<rational> > mmx::GLUE_142 ( const series< rational > &  arg_1) [static]

Definition at line 747 of file glue_series_rational.cpp.

References arg_1.

Referenced by glue_series_rational().

                                           {
    return as<series<unknown<rational> > > (arg_1);
  }
static series<generic> mmx::GLUE_143 ( const series< complex< rational > > &  arg_1) [static]

Definition at line 752 of file glue_series_rational.cpp.

References arg_1.

Referenced by glue_series_rational().

                                                     {
    return as<series<generic> > (arg_1);
  }
static series<generic> mmx::GLUE_144 ( const series< unknown< rational > > &  arg_1) [static]

Definition at line 757 of file glue_series_rational.cpp.

References arg_1.

Referenced by glue_series_rational().

                                                     {
    return as<series<generic> > (arg_1);
  }
static series<complex<rational> > mmx::GLUE_145 ( const routine &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 762 of file glue_series_rational.cpp.

References fixed_point_series().

Referenced by glue_series_rational().

                                                                  {
    return fixed_point_series (arg_1, arg_2);
  }
static vector<generic> mmx::GLUE_146 ( const routine &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 767 of file glue_series_rational.cpp.

References arg_2, and gen_fixed_point_vector_series().

Referenced by glue_series_rational().

static series<complex<rational> > mmx::GLUE_147 ( const routine &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 772 of file glue_series_rational.cpp.

References integrate_series().

Referenced by glue_series_rational().

                                                                  {
    return integrate_series (arg_1, arg_2);
  }
static vector<generic> mmx::GLUE_148 ( const routine &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 777 of file glue_series_rational.cpp.

References arg_2, and gen_integrate_vector_series().

Referenced by glue_series_rational().

static series<complex<rational> > mmx::GLUE_149 ( const routine &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 782 of file glue_series_rational.cpp.

References implicit_series().

Referenced by glue_series_rational().

                                                                  {
    return implicit_series (arg_1, arg_2);
  }
static bool mmx::GLUE_15 ( const vector< int > &  arg_1) [static]

Definition at line 84 of file glue_vector_int.cpp.

                                     {
    return is_atom (arg_1);
  }
static vector<integer> mmx::GLUE_15 ( const matrix< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 142 of file glue_matrix_integer.cpp.

References row().

                                                           {
    return row (arg_1, arg_2);
  }
static vector<rational> mmx::GLUE_15 ( const matrix< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 144 of file glue_matrix_rational.cpp.

References column().

                                                            {
    return column (arg_1, arg_2);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_15 ( const mmx_modular(integer)&  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 104 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                 {
    return arg_1 + arg_2;
  }
static polynomial<generic> mmx::GLUE_15 ( const polynomial< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 98 of file glue_polynomial_generic.cpp.

References rshiftz().

                                                               {
    return rshiftz (arg_1, arg_2);
  }
static polynomial<integer> mmx::GLUE_15 ( const polynomial< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 100 of file glue_polynomial_integer.cpp.

References arg_2.

                                                                   {
    return arg_1 + arg_2;
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_15 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 127 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                              {
    return arg_1 + arg_2;
  }
static polynomial<rational> mmx::GLUE_15 ( const polynomial< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 104 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                     {
    return arg_1 + arg_2;
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_15 ( const polynomial< rational > &  arg_1,
const quotient< polynomial< rational >, polynomial< rational > > &  arg_2 
) [static]

Definition at line 105 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                   {
    return arg_1 - arg_2;
  }
static series<generic> mmx::GLUE_15 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 107 of file glue_series_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 * arg_2;
  }
static series<integer> mmx::GLUE_15 ( const series< integer > &  arg_1,
const series< integer > &  arg_2 
) [static]

Definition at line 107 of file glue_series_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 - arg_2;
  }
static series<rational> mmx::GLUE_15 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 112 of file glue_series_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 * arg_2;
  }
static bool mmx::GLUE_15 ( const vector< integer > &  arg_1) [static]

Definition at line 80 of file glue_vector_integer.cpp.

                                         {
    return is_atom (arg_1);
  }
static bool mmx::GLUE_15 ( const vector< rational > &  arg_1) [static]

Definition at line 82 of file glue_vector_rational.cpp.

                                          {
    return is_atom (arg_1);
  }
static matrix<generic> mmx::GLUE_15 ( const matrix< generic > &  arg_1,
const matrix< generic > &  arg_2 
) [static]

Definition at line 142 of file glue_matrix_generic.cpp.

References horizontal_join().

                                                                       {
    return horizontal_join (arg_1, arg_2);
  }
static vector<generic> mmx::GLUE_150 ( const routine &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 787 of file glue_series_rational.cpp.

References arg_2, and gen_implicit_vector_series().

Referenced by glue_series_rational().

static series<rational> mmx::GLUE_16 ( const rational &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 117 of file glue_series_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 + arg_2;
  }
static matrix<generic> mmx::GLUE_16 ( const matrix< generic > &  arg_1,
const matrix< generic > &  arg_2 
) [static]

Definition at line 147 of file glue_matrix_generic.cpp.

References vertical_join().

                                                                       {
    return vertical_join (arg_1, arg_2);
  }
static vector<integer> mmx::GLUE_16 ( const matrix< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 147 of file glue_matrix_integer.cpp.

References column().

                                                           {
    return column (arg_1, arg_2);
  }
static matrix<rational> mmx::GLUE_16 ( const matrix< rational > &  arg_1) [static]

Definition at line 149 of file glue_matrix_rational.cpp.

References transpose().

                                          {
    return transpose (arg_1);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_16 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const mmx_modular(integer)&  arg_2 
) [static]

Definition at line 109 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                 {
    return arg_1 + arg_2;
  }
static polynomial<generic> mmx::GLUE_16 ( const polynomial< generic > &  arg_1) [static]

Definition at line 103 of file glue_polynomial_generic.cpp.

References derive().

                                             {
    return derive (arg_1);
  }
static polynomial<integer> mmx::GLUE_16 ( const integer &  arg_1,
const polynomial< integer > &  arg_2 
) [static]

Definition at line 105 of file glue_polynomial_integer.cpp.

References arg_2.

                                                                   {
    return arg_1 - arg_2;
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_16 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 132 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                              {
    return arg_1 - arg_2;
  }
static polynomial<rational> mmx::GLUE_16 ( const rational &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 109 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                     {
    return arg_1 - arg_2;
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_16 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 110 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                   {
    return arg_1 - arg_2;
  }
static series<generic> mmx::GLUE_16 ( const series< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 112 of file glue_series_generic.cpp.

                                                           {
    return binpow (arg_1, arg_2);
  }
static vector<integer> mmx::GLUE_16 ( const vector< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 85 of file glue_vector_integer.cpp.

                                                               {
    return insert (arg_1, arg_2);
  }
static series<integer> mmx::GLUE_16 ( const series< integer > &  arg_1,
const series< integer > &  arg_2 
) [static]

Definition at line 112 of file glue_series_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 * arg_2;
  }
static vector<int> mmx::GLUE_16 ( const vector< int > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 89 of file glue_vector_int.cpp.

                                                       {
    return insert (arg_1, arg_2);
  }
static vector<rational> mmx::GLUE_16 ( const vector< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 87 of file glue_vector_rational.cpp.

                                                                 {
    return insert (arg_1, arg_2);
  }
static matrix<generic> mmx::GLUE_17 ( const generic &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 152 of file glue_matrix_generic.cpp.

References arg_1, and fill_matrix().

                                                                     {
    return fill_matrix (arg_1, arg_2, arg_3);
  }
static matrix<integer> mmx::GLUE_17 ( const matrix< integer > &  arg_1) [static]

Definition at line 152 of file glue_matrix_integer.cpp.

References transpose().

                                         {
    return transpose (arg_1);
  }
static matrix<rational> mmx::GLUE_17 ( const matrix< rational > &  arg_1,
const matrix< rational > &  arg_2 
) [static]

Definition at line 154 of file glue_matrix_rational.cpp.

References horizontal_join().

                                                                         {
    return horizontal_join (arg_1, arg_2);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_17 ( const mmx_modular(integer)&  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 114 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                 {
    return arg_1 - arg_2;
  }
static polynomial<generic> mmx::GLUE_17 ( const polynomial< generic > &  arg_1) [static]

Definition at line 108 of file glue_polynomial_generic.cpp.

References xderive().

                                             {
    return xderive (arg_1);
  }
static polynomial<integer> mmx::GLUE_17 ( const polynomial< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 110 of file glue_polynomial_integer.cpp.

References arg_2.

                                                                   {
    return arg_1 - arg_2;
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_17 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 137 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                              {
    return arg_1 - arg_2;
  }
static polynomial<rational> mmx::GLUE_17 ( const polynomial< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 114 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                     {
    return arg_1 - arg_2;
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_17 ( const polynomial< rational > &  arg_1,
const quotient< polynomial< rational >, polynomial< rational > > &  arg_2 
) [static]

Definition at line 115 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                   {
    return arg_1 * arg_2;
  }
static int mmx::GLUE_17 ( const vector< int > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 94 of file glue_vector_int.cpp.

                                                       {
    return find (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_17 ( const series< generic > &  arg_1) [static]

Definition at line 117 of file glue_series_generic.cpp.

References derive().

                                         {
    return derive (arg_1);
  }
static series<integer> mmx::GLUE_17 ( const integer &  arg_1,
const series< integer > &  arg_2 
) [static]

Definition at line 117 of file glue_series_integer.cpp.

References arg_2.

                                                               {
    return arg_1 + arg_2;
  }
static series<rational> mmx::GLUE_17 ( const series< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 122 of file glue_series_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 + arg_2;
  }
static int mmx::GLUE_17 ( const vector< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 90 of file glue_vector_integer.cpp.

                                                               {
    return find (arg_1, arg_2);
  }
static int mmx::GLUE_17 ( const vector< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 92 of file glue_vector_rational.cpp.

                                                                 {
    return find (arg_1, arg_2);
  }
static matrix<generic> mmx::GLUE_18 ( const generic &  arg_1,
const int &  arg_2 
) [static]

Definition at line 157 of file glue_matrix_generic.cpp.

References arg_1, and jordan_matrix().

                                                   {
    return jordan_matrix (arg_1, arg_2);
  }
static series<integer> mmx::GLUE_18 ( const series< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 122 of file glue_series_integer.cpp.

References arg_2.

                                                               {
    return arg_1 + arg_2;
  }
static matrix<integer> mmx::GLUE_18 ( const matrix< integer > &  arg_1,
const matrix< integer > &  arg_2 
) [static]

Definition at line 157 of file glue_matrix_integer.cpp.

References horizontal_join().

                                                                       {
    return horizontal_join (arg_1, arg_2);
  }
static matrix<rational> mmx::GLUE_18 ( const matrix< rational > &  arg_1,
const matrix< rational > &  arg_2 
) [static]

Definition at line 159 of file glue_matrix_rational.cpp.

References vertical_join().

                                                                         {
    return vertical_join (arg_1, arg_2);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_18 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const mmx_modular(integer)&  arg_2 
) [static]

Definition at line 119 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                 {
    return arg_1 - arg_2;
  }
static generic mmx::GLUE_18 ( const polynomial< generic > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 113 of file glue_polynomial_generic.cpp.

References arg_2, and evaluate().

                                                                   {
    return evaluate (arg_1, arg_2);
  }
static polynomial<integer> mmx::GLUE_18 ( const integer &  arg_1,
const polynomial< integer > &  arg_2 
) [static]

Definition at line 115 of file glue_polynomial_integer.cpp.

References arg_2.

                                                                   {
    return arg_1 * arg_2;
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_18 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 142 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                              {
    return arg_1 * arg_2;
  }
static bool mmx::GLUE_18 ( const vector< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 97 of file glue_vector_rational.cpp.

                                                                 {
    return contains (arg_1, arg_2);
  }
static polynomial<rational> mmx::GLUE_18 ( const rational &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 119 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                     {
    return arg_1 * arg_2;
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_18 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 120 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                   {
    return arg_1 * arg_2;
  }
static series<generic> mmx::GLUE_18 ( const series< generic > &  arg_1) [static]

Definition at line 122 of file glue_series_generic.cpp.

References xderive().

                                         {
    return xderive (arg_1);
  }
static series<rational> mmx::GLUE_18 ( const rational &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 127 of file glue_series_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 - arg_2;
  }
static bool mmx::GLUE_18 ( const vector< int > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 99 of file glue_vector_int.cpp.

                                                       {
    return contains (arg_1, arg_2);
  }
static bool mmx::GLUE_18 ( const vector< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 95 of file glue_vector_integer.cpp.

                                                               {
    return contains (arg_1, arg_2);
  }
static matrix<generic> mmx::GLUE_19 ( const vector< generic > &  arg_1) [static]

Definition at line 162 of file glue_matrix_generic.cpp.

References toeplitz_matrix().

                                         {
    return toeplitz_matrix (arg_1);
  }
static matrix<integer> mmx::GLUE_19 ( const matrix< integer > &  arg_1,
const matrix< integer > &  arg_2 
) [static]

Definition at line 162 of file glue_matrix_integer.cpp.

References vertical_join().

                                                                       {
    return vertical_join (arg_1, arg_2);
  }
static row_tuple<complex<rational> > mmx::GLUE_19 ( const tuple< complex< rational > > &  arg_1) [static]

Definition at line 164 of file glue_matrix_rational.cpp.

References arg_1, and as_vector().

                                                   {
    return row_tuple<complex<rational> > (as_vector (arg_1));
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_19 ( const mmx_modular(integer)&  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 124 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                 {
    return arg_1 * arg_2;
  }
static vector<generic> mmx::GLUE_19 ( const polynomial< generic > &  arg_1,
const vector< generic > &  arg_2 
) [static]

Definition at line 118 of file glue_polynomial_generic.cpp.

References evaluate().

                                                                           {
    return evaluate (arg_1, arg_2);
  }
static polynomial<integer> mmx::GLUE_19 ( const polynomial< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 120 of file glue_polynomial_integer.cpp.

References arg_2.

                                                                   {
    return arg_1 * arg_2;
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_19 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 147 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                              {
    return arg_1 * arg_2;
  }
static polynomial<rational> mmx::GLUE_19 ( const polynomial< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 124 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                     {
    return arg_1 * arg_2;
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_19 ( const polynomial< rational > &  arg_1,
const quotient< polynomial< rational >, polynomial< rational > > &  arg_2 
) [static]

Definition at line 125 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                   {
    return arg_1 / arg_2;
  }
static series<generic> mmx::GLUE_19 ( const series< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 127 of file glue_series_generic.cpp.

References dilate().

                                                           {
    return dilate (arg_1, arg_2);
  }
static vector<int> mmx::GLUE_19 ( const vector< int > &  arg_1) [static]

Definition at line 104 of file glue_vector_int.cpp.

References arg_1.

                                     {
    return -arg_1;
  }
static series<integer> mmx::GLUE_19 ( const integer &  arg_1,
const series< integer > &  arg_2 
) [static]

Definition at line 127 of file glue_series_integer.cpp.

References arg_2.

                                                               {
    return arg_1 - arg_2;
  }
static series<rational> mmx::GLUE_19 ( const series< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 132 of file glue_series_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 - arg_2;
  }
static vector<integer> mmx::GLUE_19 ( const vector< integer > &  arg_1) [static]

Definition at line 100 of file glue_vector_integer.cpp.

References arg_1.

                                         {
    return -arg_1;
  }
static vector<integer> mmx::GLUE_2 ( const vector< int > &  arg_1) [static]

Definition at line 77 of file glue_matrix_integer.cpp.

References arg_1.

                                    {
    return as<vector<integer> > (arg_1);
  }
static matrix<mmx_modular(integer) > mmx::GLUE_2 ( const tuple< mmx_modular(integer) > &  arg_1) [static]

Definition at line 81 of file glue_matrix_modular_integer.cpp.

References arg_1, as_vector(), and matrix_new().

                                                     {
    return matrix_new (as_vector (arg_1));
  }
static void mmx::GLUE_2 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 39 of file glue_p_adic_modular_integer.cpp.

References set_output_order().

static void mmx::GLUE_2 ( const polynomial< mmx_modular(integer), polynomial_carry_variant_helper< mmx_modular(integer) >::PV > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 35 of file glue_p_expansion_modular_integer.cpp.

References arg_2, and set_variable_name().

static permutation mmx::GLUE_2 ( const int &  arg_1) [static]

Definition at line 19 of file glue_permutation.cpp.

                            {
    return permutation (arg_1);
  }
static polynomial<integer> mmx::GLUE_2 ( const tuple< integer > &  arg_1) [static]

Definition at line 35 of file glue_polynomial_integer.cpp.

References as_vector().

                                       {
    return polynomial<integer > (as_vector (arg_1));
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_2 ( const tuple< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 62 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1, and as_vector().

                                                                     {
    return polynomial<simple_p_adic(mmx_modular(integer) ) > (as_vector (arg_1));
  }
static polynomial<rational> mmx::GLUE_2 ( const tuple< rational > &  arg_1) [static]

Definition at line 39 of file glue_polynomial_rational.cpp.

References as_vector().

                                        {
    return polynomial<rational > (as_vector (arg_1));
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_2 ( const polynomial< rational > &  arg_1) [static]

Definition at line 40 of file glue_quotient_polynomial_rational.cpp.

References simple_quotient.

                                             {
    return (simple_quotient(polynomial<rational> ) (arg_1));
  }
static void mmx::GLUE_2 ( const series< generic > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 42 of file glue_series_generic.cpp.

References arg_2, and set_variable_name().

static void mmx::GLUE_2 ( const series< integer > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 42 of file glue_series_integer.cpp.

References arg_2, and set_variable_name().

static series<generic> mmx::GLUE_2 ( const series< generic > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 53 of file glue_series_modular_integer.cpp.

                                                              {
    return binpow (arg_1, arg_2);
  }
static void mmx::GLUE_2 ( const series< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 47 of file glue_series_rational.cpp.

References set_output_order().

static vector<int> mmx::GLUE_2 ( const tuple< int > &  arg_1) [static]

Definition at line 19 of file glue_vector_int.cpp.

References as_vector().

                                   {
    return vector<int > (as_vector (arg_1));
  }
static algebraic_real mmx::GLUE_2 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2,
const mmx_ball(mmx_floating, mmx_floating)&  arg_3 
) [static]

Definition at line 46 of file glue_algebraic_number.cpp.

                                                                                                                                   {
    return algebraic_real (arg_1, arg_2, arg_3);
  }
static row_tuple<generic> mmx::GLUE_2 ( const tuple< generic > &  arg_1) [static]

Definition at line 77 of file glue_matrix_generic.cpp.

References as_vector().

                                       {
    return row_tuple<generic > (as_vector (arg_1));
  }
static matrix<generic> mmx::GLUE_20 ( const vector< generic > &  arg_1) [static]

Definition at line 167 of file glue_matrix_generic.cpp.

References hankel_matrix().

                                         {
    return hankel_matrix (arg_1);
  }
static matrix<integer> mmx::GLUE_20 ( const integer &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 167 of file glue_matrix_integer.cpp.

References fill_matrix().

                                                                     {
    return fill_matrix (arg_1, arg_2, arg_3);
  }
static matrix<complex<rational> > mmx::GLUE_20 ( const tuple< complex< rational > > &  arg_1) [static]

Definition at line 169 of file glue_matrix_rational.cpp.

References arg_1, as_vector(), and matrix_new().

                                                   {
    return matrix_new (as_vector (arg_1));
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_20 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const mmx_modular(integer)&  arg_2 
) [static]

Definition at line 129 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                 {
    return arg_1 * arg_2;
  }
static generic mmx::GLUE_20 ( const polynomial< generic > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 123 of file glue_polynomial_generic.cpp.

References arg_2, and evaluate().

                                                                   {
    return evaluate (arg_1, arg_2);
  }
static polynomial<integer> mmx::GLUE_20 ( const polynomial< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 125 of file glue_polynomial_integer.cpp.

                                                               {
    return binpow (arg_1, arg_2);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_20 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 152 of file glue_polynomial_p_adic_modular_integer.cpp.

                                                                                             {
    return binpow (arg_1, arg_2);
  }
static polynomial<rational> mmx::GLUE_20 ( const polynomial< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 129 of file glue_polynomial_rational.cpp.

                                                                {
    return binpow (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_20 ( const series< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 132 of file glue_series_generic.cpp.

References lshiftz().

                                                           {
    return lshiftz (arg_1, arg_2);
  }
static series<integer> mmx::GLUE_20 ( const series< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 132 of file glue_series_integer.cpp.

References arg_2.

                                                               {
    return arg_1 - arg_2;
  }
static series<rational> mmx::GLUE_20 ( const rational &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 137 of file glue_series_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 * arg_2;
  }
static vector<integer> mmx::GLUE_20 ( const vector< integer > &  arg_1) [static]

Definition at line 105 of file glue_vector_integer.cpp.

References square().

                                         {
    return square (arg_1);
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_20 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 130 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                   {
    return arg_1 / arg_2;
  }
static vector<int> mmx::GLUE_20 ( const vector< int > &  arg_1) [static]

Definition at line 109 of file glue_vector_int.cpp.

References square().

                                     {
    return square (arg_1);
  }
static matrix<generic> mmx::GLUE_21 ( const vector< generic > &  arg_1,
const vector< generic > &  arg_2 
) [static]

Definition at line 172 of file glue_matrix_generic.cpp.

References tensor_matrix().

                                                                       {
    return tensor_matrix (arg_1, arg_2);
  }
static matrix<integer> mmx::GLUE_21 ( const integer &  arg_1,
const int &  arg_2 
) [static]

Definition at line 172 of file glue_matrix_integer.cpp.

References jordan_matrix().

                                                   {
    return jordan_matrix (arg_1, arg_2);
  }
static matrix<complex<rational> > mmx::GLUE_21 ( const tuple< row_tuple< complex< rational > > > &  arg_1) [static]

Definition at line 174 of file glue_matrix_rational.cpp.

References arg_1, as_vector(), and matrix_new().

                                                               {
    return matrix_new (as_vector (arg_1));
  }
static iterator<generic> mmx::GLUE_21 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 112 of file glue_vector_rational.cpp.

References arg_1, and iterate().

                                                    {
    return as<iterator<generic> > (iterate (arg_1));
  }
static series<generic> mmx::GLUE_21 ( const series< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 137 of file glue_series_generic.cpp.

References rshiftz().

                                                           {
    return rshiftz (arg_1, arg_2);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_21 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 134 of file glue_p_adic_modular_integer.cpp.

                                                                                {
    return binpow (arg_1, arg_2);
  }
static vector<generic> mmx::GLUE_21 ( const polynomial< generic > &  arg_1,
const vector< generic > &  arg_2 
) [static]

Definition at line 128 of file glue_polynomial_generic.cpp.

References evaluate().

                                                                           {
    return evaluate (arg_1, arg_2);
  }
static polynomial<integer> mmx::GLUE_21 ( const polynomial< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 130 of file glue_polynomial_integer.cpp.

References lshiftz().

                                                               {
    return lshiftz (arg_1, arg_2);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_21 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 157 of file glue_polynomial_p_adic_modular_integer.cpp.

References lshiftz().

                                                                                             {
    return lshiftz (arg_1, arg_2);
  }
static polynomial<rational> mmx::GLUE_21 ( const polynomial< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 134 of file glue_polynomial_rational.cpp.

References lshiftz().

                                                                {
    return lshiftz (arg_1, arg_2);
  }
static series<integer> mmx::GLUE_21 ( const integer &  arg_1,
const series< integer > &  arg_2 
) [static]

Definition at line 137 of file glue_series_integer.cpp.

References arg_2.

                                                               {
    return arg_1 * arg_2;
  }
static series<rational> mmx::GLUE_21 ( const series< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 142 of file glue_series_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 * arg_2;
  }
static vector<int> mmx::GLUE_21 ( const vector< int > &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 114 of file glue_vector_int.cpp.

References arg_2.

                                                               {
    return arg_1 + arg_2;
  }
static vector<integer> mmx::GLUE_21 ( const vector< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 110 of file glue_vector_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 + arg_2;
  }
static matrix<generic> mmx::GLUE_22 ( const vector< generic > &  arg_1) [static]

Definition at line 177 of file glue_matrix_generic.cpp.

References vandermonde().

                                         {
    return vandermonde (arg_1);
  }
static matrix<integer> mmx::GLUE_22 ( const vector< integer > &  arg_1) [static]

Definition at line 177 of file glue_matrix_integer.cpp.

References toeplitz_matrix().

                                         {
    return toeplitz_matrix (arg_1);
  }
static matrix<complex<rational> > mmx::GLUE_22 ( const tuple< row_tuple< complex< rational > > > &  arg_1) [static]

Definition at line 179 of file glue_matrix_rational.cpp.

References arg_1, as_vector(), and matrix_new().

                                                               {
    return matrix_new (as_vector (arg_1));
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_22 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 139 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                 {
    return arg_1 / arg_2;
  }
static polynomial<generic> mmx::GLUE_22 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 133 of file glue_polynomial_generic.cpp.

References arg_2.

                                                                               {
    return arg_1 / arg_2;
  }
static polynomial<integer> mmx::GLUE_22 ( const polynomial< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 135 of file glue_polynomial_integer.cpp.

References rshiftz().

                                                               {
    return rshiftz (arg_1, arg_2);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_22 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 162 of file glue_polynomial_p_adic_modular_integer.cpp.

References rshiftz().

                                                                                             {
    return rshiftz (arg_1, arg_2);
  }
static series<integer> mmx::GLUE_22 ( const series< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 142 of file glue_series_integer.cpp.

References arg_2.

                                                               {
    return arg_1 * arg_2;
  }
static polynomial<rational> mmx::GLUE_22 ( const polynomial< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 139 of file glue_polynomial_rational.cpp.

References rshiftz().

                                                                {
    return rshiftz (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_22 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 142 of file glue_series_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 / arg_2;
  }
static int mmx::GLUE_22 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 117 of file glue_vector_rational.cpp.

References arg_1, and N().

                                                    {
    return N (arg_1);
  }
static series<rational> mmx::GLUE_22 ( const series< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 147 of file glue_series_rational.cpp.

                                                            {
    return binpow (arg_1, arg_2);
  }
static vector<int> mmx::GLUE_22 ( const vector< int > &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 119 of file glue_vector_int.cpp.

References arg_2.

                                                               {
    return arg_1 - arg_2;
  }
static vector<integer> mmx::GLUE_22 ( const vector< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 115 of file glue_vector_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 - arg_2;
  }
static matrix<generic> mmx::GLUE_23 ( const matrix< generic > &  arg_1) [static]

Definition at line 182 of file glue_matrix_generic.cpp.

References arg_1.

                                         {
    return -arg_1;
  }
static matrix<integer> mmx::GLUE_23 ( const vector< integer > &  arg_1) [static]

Definition at line 182 of file glue_matrix_integer.cpp.

References hankel_matrix().

                                         {
    return hankel_matrix (arg_1);
  }
static int mmx::GLUE_23 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 184 of file glue_matrix_rational.cpp.

References arg_1, and N().

                                                    {
    return N (arg_1);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_23 ( const mmx_modular(integer)&  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 144 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                 {
    return arg_1 / arg_2;
  }
static polynomial<generic> mmx::GLUE_23 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 138 of file glue_polynomial_generic.cpp.

References quo().

                                                                               {
    return quo (arg_1, arg_2);
  }
static polynomial<integer> mmx::GLUE_23 ( const polynomial< integer > &  arg_1) [static]

Definition at line 140 of file glue_polynomial_integer.cpp.

References derive().

                                             {
    return derive (arg_1);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_23 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 167 of file glue_polynomial_p_adic_modular_integer.cpp.

References derive().

                                                                           {
    return derive (arg_1);
  }
static vector<int> mmx::GLUE_23 ( const vector< int > &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 124 of file glue_vector_int.cpp.

References arg_2.

                                                               {
    return arg_1 * arg_2;
  }
static polynomial<rational> mmx::GLUE_23 ( const polynomial< rational > &  arg_1) [static]

Definition at line 144 of file glue_polynomial_rational.cpp.

References derive().

                                              {
    return derive (arg_1);
  }
static series<generic> mmx::GLUE_23 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 147 of file glue_series_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 / arg_2;
  }
static series<integer> mmx::GLUE_23 ( const series< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 147 of file glue_series_integer.cpp.

                                                           {
    return binpow (arg_1, arg_2);
  }
static series<rational> mmx::GLUE_23 ( const series< rational > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 152 of file glue_series_rational.cpp.

                                                                {
    return binpow (arg_1, arg_2);
  }
static vector<integer> mmx::GLUE_23 ( const vector< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 120 of file glue_vector_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 * arg_2;
  }
static complex<rational> mmx::GLUE_23 ( const vector< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 122 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                      {
    return arg_1[arg_2];
  }
static matrix<generic> mmx::GLUE_24 ( const matrix< generic > &  arg_1) [static]

Definition at line 187 of file glue_matrix_generic.cpp.

References square().

                                         {
    return square (arg_1);
  }
static matrix<integer> mmx::GLUE_24 ( const vector< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 187 of file glue_matrix_integer.cpp.

References tensor_matrix().

                                                                       {
    return tensor_matrix (arg_1, arg_2);
  }
static int mmx::GLUE_24 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 189 of file glue_matrix_rational.cpp.

References arg_1, and rows().

                                                    {
    return rows (arg_1);
  }
static series<rational> mmx::GLUE_24 ( const series< rational > &  arg_1) [static]

Definition at line 157 of file glue_series_rational.cpp.

References derive().

                                          {
    return derive (arg_1);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_24 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const mmx_modular(integer)&  arg_2 
) [static]

Definition at line 149 of file glue_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                 {
    return arg_1 / arg_2;
  }
static polynomial<generic> mmx::GLUE_24 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 143 of file glue_polynomial_generic.cpp.

References rem().

                                                                               {
    return rem (arg_1, arg_2);
  }
static polynomial<integer> mmx::GLUE_24 ( const polynomial< integer > &  arg_1) [static]

Definition at line 145 of file glue_polynomial_integer.cpp.

References xderive().

                                             {
    return xderive (arg_1);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_24 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 172 of file glue_polynomial_p_adic_modular_integer.cpp.

References xderive().

                                                                           {
    return xderive (arg_1);
  }
static polynomial<rational> mmx::GLUE_24 ( const polynomial< rational > &  arg_1) [static]

Definition at line 149 of file glue_polynomial_rational.cpp.

References xderive().

                                              {
    return xderive (arg_1);
  }
static bool mmx::GLUE_24 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 152 of file glue_series_generic.cpp.

References divides().

                                                                       {
    return divides (arg_1, arg_2);
  }
static series<integer> mmx::GLUE_24 ( const series< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 152 of file glue_series_integer.cpp.

                                                               {
    return binpow (arg_1, arg_2);
  }
static vector<integer> mmx::GLUE_24 ( const integer &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 125 of file glue_vector_integer.cpp.

References arg_2.

                                                               {
    return arg_1 + arg_2;
  }
static vector<int> mmx::GLUE_24 ( const int &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 129 of file glue_vector_int.cpp.

References arg_2.

                                                       {
    return arg_1 + arg_2;
  }
static alias<complex<rational> > mmx::GLUE_24 ( const alias< vector< complex< rational > > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 127 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                              {
    return alias_access<complex<rational> > (arg_1, arg_2);
  }
static matrix<generic> mmx::GLUE_25 ( const matrix< generic > &  arg_1,
const matrix< generic > &  arg_2 
) [static]

Definition at line 192 of file glue_matrix_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 + arg_2;
  }
static matrix<integer> mmx::GLUE_25 ( const vector< integer > &  arg_1) [static]

Definition at line 192 of file glue_matrix_integer.cpp.

References vandermonde().

                                         {
    return vandermonde (arg_1);
  }
static int mmx::GLUE_25 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 194 of file glue_matrix_rational.cpp.

References arg_1, and cols().

                                                    {
    return cols (arg_1);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_25 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 154 of file glue_p_adic_modular_integer.cpp.

References gcd().

                                                                                                                 {
    return gcd (arg_1, arg_2);
  }
static bool mmx::GLUE_25 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 148 of file glue_polynomial_generic.cpp.

References divides().

                                                                               {
    return divides (arg_1, arg_2);
  }
static integer mmx::GLUE_25 ( const polynomial< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 150 of file glue_polynomial_integer.cpp.

References evaluate().

                                                                   {
    return evaluate (arg_1, arg_2);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_25 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 177 of file glue_polynomial_p_adic_modular_integer.cpp.

References evaluate().

                                                                                                                              {
    return evaluate (arg_1, arg_2);
  }
static rational mmx::GLUE_25 ( const polynomial< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 154 of file glue_polynomial_rational.cpp.

References evaluate().

                                                                     {
    return evaluate (arg_1, arg_2);
  }
static series<integer> mmx::GLUE_25 ( const series< integer > &  arg_1) [static]

Definition at line 157 of file glue_series_integer.cpp.

References derive().

                                         {
    return derive (arg_1);
  }
static series<generic> mmx::GLUE_25 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 157 of file glue_series_generic.cpp.

References gcd().

                                                                       {
    return gcd (arg_1, arg_2);
  }
static series<rational> mmx::GLUE_25 ( const series< rational > &  arg_1) [static]

Definition at line 162 of file glue_series_rational.cpp.

References xderive().

                                          {
    return xderive (arg_1);
  }
static vector<int> mmx::GLUE_25 ( const vector< int > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 134 of file glue_vector_int.cpp.

References arg_2.

                                                       {
    return arg_1 + arg_2;
  }
static vector<integer> mmx::GLUE_25 ( const vector< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 130 of file glue_vector_integer.cpp.

References arg_2.

                                                               {
    return arg_1 + arg_2;
  }
static vector<complex<rational> > mmx::GLUE_25 ( const vector< complex< rational > > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 132 of file glue_vector_rational.cpp.

References arg_1, and range().

                                                                                        {
    return range (arg_1, arg_2, arg_3);
  }
static matrix<generic> mmx::GLUE_26 ( const matrix< generic > &  arg_1,
const matrix< generic > &  arg_2 
) [static]

Definition at line 197 of file glue_matrix_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 - arg_2;
  }
static matrix<integer> mmx::GLUE_26 ( const matrix< integer > &  arg_1) [static]

Definition at line 197 of file glue_matrix_integer.cpp.

References arg_1.

                                         {
    return -arg_1;
  }
static complex<rational> mmx::GLUE_26 ( const matrix< complex< rational > > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 199 of file glue_matrix_rational.cpp.

References arg_1.

                                                                                        {
    return arg_1 (arg_2, arg_3);
  }
static vector<integer> mmx::GLUE_26 ( const integer &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 135 of file glue_vector_integer.cpp.

References arg_2.

                                                               {
    return arg_1 - arg_2;
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_26 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 159 of file glue_p_adic_modular_integer.cpp.

References lcm().

                                                                                                                 {
    return lcm (arg_1, arg_2);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_26 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 182 of file glue_polynomial_p_adic_modular_integer.cpp.

References evaluate().

                                                                                                                              {
    return evaluate (arg_1, arg_2);
  }
static series<integer> mmx::GLUE_26 ( const series< integer > &  arg_1) [static]

Definition at line 162 of file glue_series_integer.cpp.

References xderive().

                                         {
    return xderive (arg_1);
  }
static polynomial<generic> mmx::GLUE_26 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2,
const int &  arg_3 
) [static]

Definition at line 153 of file glue_polynomial_generic.cpp.

References subresultant().

                                                                                                 {
    return subresultant (arg_1, arg_2, arg_3);
  }
static vector<integer> mmx::GLUE_26 ( const polynomial< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 155 of file glue_polynomial_integer.cpp.

References evaluate().

                                                                           {
    return evaluate (arg_1, arg_2);
  }
static vector<rational> mmx::GLUE_26 ( const polynomial< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 159 of file glue_polynomial_rational.cpp.

References evaluate().

                                                                             {
    return evaluate (arg_1, arg_2);
  }
static vector<complex<rational> > mmx::GLUE_26 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 137 of file glue_vector_rational.cpp.

References arg_1, and reverse().

                                                    {
    return reverse (arg_1);
  }
static series<generic> mmx::GLUE_26 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 162 of file glue_series_generic.cpp.

References lcm().

                                                                       {
    return lcm (arg_1, arg_2);
  }
static series<rational> mmx::GLUE_26 ( const series< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 167 of file glue_series_rational.cpp.

References dilate().

                                                            {
    return dilate (arg_1, arg_2);
  }
static vector<int> mmx::GLUE_26 ( const int &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 139 of file glue_vector_int.cpp.

References arg_2.

                                                       {
    return arg_1 - arg_2;
  }
static matrix<generic> mmx::GLUE_27 ( const matrix< generic > &  arg_1,
const matrix< generic > &  arg_2 
) [static]

Definition at line 202 of file glue_matrix_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 * arg_2;
  }
static matrix<integer> mmx::GLUE_27 ( const matrix< integer > &  arg_1) [static]

Definition at line 202 of file glue_matrix_integer.cpp.

References square().

                                         {
    return square (arg_1);
  }
static series<generic> mmx::GLUE_27 ( const series< generic > &  arg_1) [static]

Definition at line 167 of file glue_series_generic.cpp.

References integrate().

                                         {
    return integrate (arg_1);
  }
static alias<complex<rational> > mmx::GLUE_27 ( const alias< matrix< complex< rational > > > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 204 of file glue_matrix_rational.cpp.

References arg_1, and arg_2.

                                                                                                {
    return alias_access<complex<rational> > (arg_1, arg_2, arg_3);
  }
static vector<int> mmx::GLUE_27 ( const vector< int > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 144 of file glue_vector_int.cpp.

References arg_2.

                                                       {
    return arg_1 - arg_2;
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_27 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 164 of file glue_p_adic_modular_integer.cpp.

References separable_root().

                                                                                {
    return separable_root (arg_1, arg_2);
  }
static vector<generic> mmx::GLUE_27 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 158 of file glue_polynomial_generic.cpp.

References wrap_subresultants().

                                                                               {
    return wrap_subresultants (arg_1, arg_2);
  }
static integer mmx::GLUE_27 ( const polynomial< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 160 of file glue_polynomial_integer.cpp.

References evaluate().

                                                                   {
    return evaluate (arg_1, arg_2);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_27 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 187 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                              {
    return arg_1 / arg_2;
  }
static rational mmx::GLUE_27 ( const polynomial< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 164 of file glue_polynomial_rational.cpp.

References evaluate().

                                                                     {
    return evaluate (arg_1, arg_2);
  }
static series<integer> mmx::GLUE_27 ( const series< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 167 of file glue_series_integer.cpp.

References dilate().

                                                           {
    return dilate (arg_1, arg_2);
  }
static series<rational> mmx::GLUE_27 ( const series< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 172 of file glue_series_rational.cpp.

References lshiftz().

                                                            {
    return lshiftz (arg_1, arg_2);
  }
static vector<integer> mmx::GLUE_27 ( const vector< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 140 of file glue_vector_integer.cpp.

References arg_2.

                                                               {
    return arg_1 - arg_2;
  }
static vector<complex<rational> > mmx::GLUE_27 ( const vector< complex< rational > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 142 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                                             {
    return append (arg_1, arg_2);
  }
static vector<integer> mmx::GLUE_28 ( const polynomial< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 165 of file glue_polynomial_integer.cpp.

References evaluate().

                                                                           {
    return evaluate (arg_1, arg_2);
  }
static series<rational> mmx::GLUE_28 ( const series< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 177 of file glue_series_rational.cpp.

References rshiftz().

                                                            {
    return rshiftz (arg_1, arg_2);
  }
static vector<generic> mmx::GLUE_28 ( const matrix< generic > &  arg_1,
const vector< generic > &  arg_2 
) [static]

Definition at line 207 of file glue_matrix_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 * arg_2;
  }
static matrix<integer> mmx::GLUE_28 ( const matrix< integer > &  arg_1,
const matrix< integer > &  arg_2 
) [static]

Definition at line 207 of file glue_matrix_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 + arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_28 ( const matrix< complex< rational > > &  arg_1,
const int &  arg_2,
const int &  arg_3,
const int &  arg_4,
const int &  arg_5 
) [static]

Definition at line 209 of file glue_matrix_rational.cpp.

References arg_1, and range().

                                                                                                                            {
    return range (arg_1, arg_2, arg_3, arg_4, arg_5);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_28 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1) [static]

Definition at line 169 of file glue_p_adic_modular_integer.cpp.

References pth_root().

                                                              {
    return pth_root (arg_1);
  }
static generic mmx::GLUE_28 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 163 of file glue_polynomial_generic.cpp.

References resultant().

                                                                               {
    return resultant (arg_1, arg_2);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_28 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 192 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2.

                                                                                                                                           {
    return arg_1 / arg_2;
  }
static vector<rational> mmx::GLUE_28 ( const polynomial< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 169 of file glue_polynomial_rational.cpp.

References evaluate().

                                                                             {
    return evaluate (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_28 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 172 of file glue_series_generic.cpp.

References compose().

                                                                       {
    return compose (arg_1, arg_2);
  }
static series<integer> mmx::GLUE_28 ( const series< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 172 of file glue_series_integer.cpp.

References lshiftz().

                                                           {
    return lshiftz (arg_1, arg_2);
  }
static vector<int> mmx::GLUE_28 ( const int &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 149 of file glue_vector_int.cpp.

References arg_2.

                                                       {
    return arg_1 * arg_2;
  }
static alias<vector<complex<rational> > > mmx::GLUE_28 ( const alias< vector< complex< rational > > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 147 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                                                     {
    return alias_write (arg_1, arg_2);
  }
static vector<integer> mmx::GLUE_28 ( const integer &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 145 of file glue_vector_integer.cpp.

References arg_2.

                                                               {
    return arg_1 * arg_2;
  }
static vector<generic> mmx::GLUE_29 ( const vector< generic > &  arg_1,
const matrix< generic > &  arg_2 
) [static]

Definition at line 212 of file glue_matrix_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 * arg_2;
  }
static matrix<integer> mmx::GLUE_29 ( const matrix< integer > &  arg_1,
const matrix< integer > &  arg_2 
) [static]

Definition at line 212 of file glue_matrix_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 - arg_2;
  }
static vector<complex<rational> > mmx::GLUE_29 ( const matrix< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 214 of file glue_matrix_rational.cpp.

References arg_1, and row().

                                                                      {
    return row (arg_1, arg_2);
  }
static vector<int> mmx::GLUE_29 ( const vector< int > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 154 of file glue_vector_int.cpp.

References arg_2.

                                                       {
    return arg_1 * arg_2;
  }
static generic mmx::GLUE_29 ( const polynomial< generic > &  arg_1) [static]

Definition at line 168 of file glue_polynomial_generic.cpp.

References discriminant().

                                             {
    return discriminant (arg_1);
  }
static polynomial<generic> mmx::GLUE_29 ( const polynomial< integer > &  arg_1) [static]

Definition at line 170 of file glue_polynomial_integer.cpp.

References arg_1.

                                             {
    return as<polynomial<generic> > (arg_1);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_29 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 197 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2, and quo().

                                                                                                                                           {
    return quo (arg_1, arg_2);
  }
static polynomial<rational> mmx::GLUE_29 ( const polynomial< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 174 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                     {
    return arg_1 / arg_2;
  }
static series<generic> mmx::GLUE_29 ( const series< generic > &  arg_1) [static]

Definition at line 177 of file glue_series_generic.cpp.

References reverse().

                                         {
    return reverse (arg_1);
  }
static series<integer> mmx::GLUE_29 ( const series< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 177 of file glue_series_integer.cpp.

References rshiftz().

                                                           {
    return rshiftz (arg_1, arg_2);
  }
static series<rational> mmx::GLUE_29 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 182 of file glue_series_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 / arg_2;
  }
static vector<integer> mmx::GLUE_29 ( const vector< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 150 of file glue_vector_integer.cpp.

References arg_2.

                                                               {
    return arg_1 * arg_2;
  }
static vector<complex<rational> > mmx::GLUE_29 ( const complex< rational > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 152 of file glue_vector_rational.cpp.

References arg_2.

                                                                                    {
    return cons (arg_1, arg_2);
  }
static generic mmx::GLUE_3 ( const integer &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 82 of file glue_matrix_integer.cpp.

                                                      {
    return integer_pow (arg_1, arg_2);
  }
static matrix<mmx_modular(integer) > mmx::GLUE_3 ( const tuple< row_tuple< mmx_modular(integer) > > &  arg_1) [static]

Definition at line 86 of file glue_matrix_modular_integer.cpp.

References arg_1, as_vector(), and matrix_new().

                                                                 {
    return matrix_new (as_vector (arg_1));
  }
static matrix<rational> mmx::GLUE_3 ( const int &  arg_1) [static]

Definition at line 84 of file glue_matrix_rational.cpp.

References hilbert_matrix_rational.

static void mmx::GLUE_3 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 44 of file glue_p_adic_modular_integer.cpp.

References set_cancel_order().

static iterator<generic> mmx::GLUE_3 ( const polynomial< mmx_modular(integer), polynomial_carry_variant_helper< mmx_modular(integer) >::PV > &  arg_1) [static]

Definition at line 40 of file glue_p_expansion_modular_integer.cpp.

References iterate().

                                                                  {
    return as<iterator<generic> > (iterate (arg_1));
  }
static permutation mmx::GLUE_3 ( const int &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 24 of file glue_permutation.cpp.

References transposition().

                                                                {
    return transposition (arg_1, arg_2, arg_3);
  }
static void mmx::GLUE_3 ( const polynomial< generic > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 38 of file glue_polynomial_generic.cpp.

References arg_2, and set_variable_name().

static void mmx::GLUE_3 ( const polynomial< integer > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 40 of file glue_polynomial_integer.cpp.

References arg_2, and set_variable_name().

static void mmx::GLUE_3 ( const polynomial< mmx_modular(integer) > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 49 of file glue_polynomial_modular_integer.cpp.

References arg_1, arg_2, and set_variable_name().

static void mmx::GLUE_3 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const generic &  arg_2 
) [static]
static void mmx::GLUE_3 ( const polynomial< rational > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 44 of file glue_polynomial_rational.cpp.

References arg_2, and set_variable_name().

static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_3 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 45 of file glue_quotient_polynomial_rational.cpp.

References simple_quotient.

                                                                                {
    return (simple_quotient(polynomial<rational> ) (arg_1, arg_2));
  }
static void mmx::GLUE_3 ( const series< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 47 of file glue_series_generic.cpp.

References set_output_order().

static void mmx::GLUE_3 ( const series< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 47 of file glue_series_integer.cpp.

References set_output_order().

static void mmx::GLUE_3 ( const series< mmx_modular(integer) > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 58 of file glue_series_modular_integer.cpp.

References set_variable_name().

static void mmx::GLUE_3 ( const series< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 52 of file glue_series_rational.cpp.

References set_cancel_order().

static iterator<generic> mmx::GLUE_3 ( const vector< integer > &  arg_1) [static]

Definition at line 20 of file glue_vector_integer.cpp.

References iterate().

                                        {
    return as<iterator<generic> > (iterate (arg_1));
  }
static iterator<generic> mmx::GLUE_3 ( const vector< rational > &  arg_1) [static]

Definition at line 22 of file glue_vector_rational.cpp.

References iterate().

                                         {
    return as<iterator<generic> > (iterate (arg_1));
  }
static iterator<generic> mmx::GLUE_3 ( const vector< int > &  arg_1) [static]

Definition at line 24 of file glue_vector_int.cpp.

References iterate().

                                    {
    return as<iterator<generic> > (iterate (arg_1));
  }
static algebraic_real mmx::GLUE_3 ( const rational &  arg_1) [static]

Definition at line 51 of file glue_algebraic_number.cpp.

                                 {
    return algebraic_real (arg_1);
  }
static matrix<generic> mmx::GLUE_3 ( const tuple< generic > &  arg_1) [static]

Definition at line 82 of file glue_matrix_generic.cpp.

References as_vector(), and matrix_new().

                                       {
    return matrix_new (as_vector (arg_1));
  }
static matrix<generic> mmx::GLUE_30 ( const matrix< generic > &  arg_1,
const matrix< generic > &  arg_2 
) [static]

Definition at line 217 of file glue_matrix_generic.cpp.

References krylov().

                                                                       {
    return krylov (arg_1, arg_2);
  }
static matrix<integer> mmx::GLUE_30 ( const matrix< integer > &  arg_1,
const matrix< integer > &  arg_2 
) [static]

Definition at line 217 of file glue_matrix_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 * arg_2;
  }
static vector<complex<rational> > mmx::GLUE_30 ( const matrix< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 219 of file glue_matrix_rational.cpp.

References arg_1, and column().

                                                                      {
    return column (arg_1, arg_2);
  }
static complex<rational> mmx::GLUE_30 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 157 of file glue_vector_rational.cpp.

References arg_1.

                                                    {
    return car (arg_1);
  }
static polynomial<generic> mmx::GLUE_30 ( const polynomial< generic > &  arg_1) [static]

Definition at line 173 of file glue_polynomial_generic.cpp.

References integrate().

                                             {
    return integrate (arg_1);
  }
static polynomial<rational> mmx::GLUE_30 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 179 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                                 {
    return arg_1 / arg_2;
  }
static series<generic> mmx::GLUE_30 ( const series< generic > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 182 of file glue_series_generic.cpp.

References arg_2, and q_difference().

                                                               {
    return q_difference (arg_1, arg_2);
  }
static series<rational> mmx::GLUE_30 ( const rational &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 187 of file glue_series_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 / arg_2;
  }
static int mmx::GLUE_30 ( const vector< int > &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 159 of file glue_vector_int.cpp.

                                                               {
    return dot (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_30 ( const series< generic > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 182 of file glue_series_integer.cpp.

                                                               {
    return binpow (arg_1, arg_2);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_30 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 202 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2, and rem().

                                                                                                                                           {
    return rem (arg_1, arg_2);
  }
static algebraic_number mmx::GLUE_30 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2,
const mmx_ball(mmx_floating, complex< mmx_floating >)&  arg_3 
) [static]
static integer mmx::GLUE_30 ( const vector< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 155 of file glue_vector_integer.cpp.

                                                                       {
    return dot (arg_1, arg_2);
  }
static generic mmx::GLUE_31 ( const matrix< generic > &  arg_1) [static]

Definition at line 222 of file glue_matrix_generic.cpp.

References det().

                                         {
    return det (arg_1);
  }
static polynomial<rational> mmx::GLUE_31 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 184 of file glue_polynomial_rational.cpp.

References quo().

                                                                                 {
    return quo (arg_1, arg_2);
  }
static matrix<integer> mmx::GLUE_31 ( const integer &  arg_1,
const matrix< integer > &  arg_2 
) [static]

Definition at line 222 of file glue_matrix_integer.cpp.

References arg_2.

                                                               {
    return arg_1 + arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_31 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 224 of file glue_matrix_rational.cpp.

References arg_1, and transpose().

                                                    {
    return transpose (arg_1);
  }
static polynomial<generic> mmx::GLUE_31 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 178 of file glue_polynomial_generic.cpp.

References compose().

                                                                               {
    return compose (arg_1, arg_2);
  }
static bool mmx::GLUE_31 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 207 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2, and divides().

                                                                                                                                           {
    return divides (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_31 ( const series< generic > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 187 of file glue_series_generic.cpp.

References arg_2, and series_shift_default.

static bool mmx::GLUE_31 ( const series< integer > &  arg_1,
const series< integer > &  arg_2 
) [static]

Definition at line 187 of file glue_series_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 <= arg_2;
  }
static series<rational> mmx::GLUE_31 ( const series< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 192 of file glue_series_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 / arg_2;
  }
static int mmx::GLUE_31 ( const vector< int > &  arg_1) [static]

Definition at line 164 of file glue_vector_int.cpp.

References big_mul().

                                     {
    return big_mul (arg_1);
  }
static vector<complex<rational> > mmx::GLUE_31 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 162 of file glue_vector_rational.cpp.

References arg_1.

                                                    {
    return cdr (arg_1);
  }
static integer mmx::GLUE_31 ( const vector< integer > &  arg_1) [static]

Definition at line 160 of file glue_vector_integer.cpp.

References big_mul().

                                         {
    return big_mul (arg_1);
  }
static matrix<generic> mmx::GLUE_32 ( const matrix< generic > &  arg_1) [static]

Definition at line 227 of file glue_matrix_generic.cpp.

References row_echelon().

                                         {
    return row_echelon (arg_1);
  }
static matrix<integer> mmx::GLUE_32 ( const matrix< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 227 of file glue_matrix_integer.cpp.

References arg_2.

                                                               {
    return arg_1 + arg_2;
  }
static series<rational> mmx::GLUE_32 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 197 of file glue_series_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 / arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_32 ( const matrix< complex< rational > > &  arg_1,
const matrix< complex< rational > > &  arg_2 
) [static]

Definition at line 229 of file glue_matrix_rational.cpp.

References arg_1, arg_2, and horizontal_join().

                                                                                             {
    return horizontal_join (arg_1, arg_2);
  }
static polynomial<generic> mmx::GLUE_32 ( const polynomial< generic > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 183 of file glue_polynomial_generic.cpp.

References arg_2, and q_difference().

                                                                   {
    return q_difference (arg_1, arg_2);
  }
static integer mmx::GLUE_32 ( const vector< integer > &  arg_1) [static]

Definition at line 165 of file glue_vector_integer.cpp.

References big_add().

                                         {
    return big_add (arg_1);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_32 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2,
const int &  arg_3 
) [static]

Definition at line 212 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2, and subresultant().

                                                                                                                                                             {
    return subresultant (arg_1, arg_2, arg_3);
  }
static polynomial<rational> mmx::GLUE_32 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 189 of file glue_polynomial_rational.cpp.

References rem().

                                                                                 {
    return rem (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_32 ( const series< generic > &  arg_1,
const generic &  arg_2,
const int &  arg_3 
) [static]

Definition at line 192 of file glue_series_generic.cpp.

References arg_2, and shift().

                                                                                 {
    return shift (arg_1, arg_2, arg_3);
  }
static bool mmx::GLUE_32 ( const series< integer > &  arg_1,
const series< integer > &  arg_2 
) [static]

Definition at line 192 of file glue_series_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 >= arg_2;
  }
static int mmx::GLUE_32 ( const vector< int > &  arg_1) [static]

Definition at line 169 of file glue_vector_int.cpp.

References big_add().

                                     {
    return big_add (arg_1);
  }
static bool mmx::GLUE_32 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 167 of file glue_vector_rational.cpp.

References arg_1.

                                                    {
    return is_nil (arg_1);
  }
static matrix<generic> mmx::GLUE_33 ( const matrix< generic > &  arg_1) [static]

Definition at line 232 of file glue_matrix_generic.cpp.

References column_echelon().

                                         {
    return column_echelon (arg_1);
  }
static matrix<integer> mmx::GLUE_33 ( const integer &  arg_1,
const matrix< integer > &  arg_2 
) [static]

Definition at line 232 of file glue_matrix_integer.cpp.

References arg_2.

                                                               {
    return arg_1 - arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_33 ( const matrix< complex< rational > > &  arg_1,
const matrix< complex< rational > > &  arg_2 
) [static]

Definition at line 234 of file glue_matrix_rational.cpp.

References arg_1, arg_2, and vertical_join().

                                                                                             {
    return vertical_join (arg_1, arg_2);
  }
static bool mmx::GLUE_33 ( const vector< int > &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 174 of file glue_vector_int.cpp.

References arg_2.

                                                               {
    return arg_1 <= arg_2;
  }
static polynomial<generic> mmx::GLUE_33 ( const polynomial< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 188 of file glue_polynomial_generic.cpp.

References dilate().

                                                               {
    return dilate (arg_1, arg_2);
  }
static vector<generic> mmx::GLUE_33 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 217 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2, and wrap_subresultants().

                                                                                                                                           {
    return wrap_subresultants (arg_1, arg_2);
  }
static bool mmx::GLUE_33 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 194 of file glue_polynomial_rational.cpp.

References divides().

                                                                                 {
    return divides (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_33 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 197 of file glue_series_generic.cpp.

References pow().

                                                                       {
    return pow (arg_1, arg_2);
  }
static bool mmx::GLUE_33 ( const series< integer > &  arg_1,
const series< integer > &  arg_2 
) [static]

Definition at line 197 of file glue_series_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 < arg_2;
  }
static bool mmx::GLUE_33 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 202 of file glue_series_rational.cpp.

References divides().

                                                                         {
    return divides (arg_1, arg_2);
  }
static bool mmx::GLUE_33 ( const vector< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 170 of file glue_vector_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 <= arg_2;
  }
static bool mmx::GLUE_33 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 172 of file glue_vector_rational.cpp.

References arg_1.

                                                    {
    return is_atom (arg_1);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_34 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 222 of file glue_polynomial_p_adic_modular_integer.cpp.

References resultant().

                                                                                                                                           {
    return resultant (arg_1, arg_2);
  }
static matrix<integer> mmx::GLUE_34 ( const matrix< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 237 of file glue_matrix_integer.cpp.

References arg_2.

                                                               {
    return arg_1 - arg_2;
  }
static bool mmx::GLUE_34 ( const series< integer > &  arg_1,
const series< integer > &  arg_2 
) [static]

Definition at line 202 of file glue_series_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 > arg_2;
  }
static matrix<rational> mmx::GLUE_34 ( const rational &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 239 of file glue_matrix_rational.cpp.

References fill_matrix().

                                                                      {
    return fill_matrix (arg_1, arg_2, arg_3);
  }
static polynomial<generic> mmx::GLUE_34 ( const vector< generic > &  arg_1) [static]

Definition at line 193 of file glue_polynomial_generic.cpp.

References annulator().

                                         {
    return annulator (arg_1);
  }
static polynomial<rational> mmx::GLUE_34 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2,
const int &  arg_3 
) [static]

Definition at line 199 of file glue_polynomial_rational.cpp.

References subresultant().

                                                                                                   {
    return subresultant (arg_1, arg_2, arg_3);
  }
static vector<complex<rational> > mmx::GLUE_34 ( const vector< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 177 of file glue_vector_rational.cpp.

References arg_1.

                                                                                    {
    return insert (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_34 ( const series< generic > &  arg_1) [static]

Definition at line 202 of file glue_series_generic.cpp.

References sqrt().

                                         {
    return sqrt (arg_1);
  }
static series<rational> mmx::GLUE_34 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 207 of file glue_series_rational.cpp.

References gcd().

                                                                         {
    return gcd (arg_1, arg_2);
  }
static bool mmx::GLUE_34 ( const vector< int > &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 179 of file glue_vector_int.cpp.

References arg_2.

                                                               {
    return arg_1 >= arg_2;
  }
static bool mmx::GLUE_34 ( const vector< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 175 of file glue_vector_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 >= arg_2;
  }
static matrix<generic> mmx::GLUE_35 ( const matrix< generic > &  arg_1) [static]

Definition at line 242 of file glue_matrix_generic.cpp.

References column_reduced_echelon().

static matrix<integer> mmx::GLUE_35 ( const integer &  arg_1,
const matrix< integer > &  arg_2 
) [static]

Definition at line 242 of file glue_matrix_integer.cpp.

References arg_2.

                                                               {
    return arg_1 * arg_2;
  }
static bool mmx::GLUE_35 ( const vector< int > &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 184 of file glue_vector_int.cpp.

References arg_2.

                                                               {
    return arg_1 < arg_2;
  }
static matrix<rational> mmx::GLUE_35 ( const rational &  arg_1,
const int &  arg_2 
) [static]

Definition at line 244 of file glue_matrix_rational.cpp.

References jordan_matrix().

                                                    {
    return jordan_matrix (arg_1, arg_2);
  }
static polynomial<generic> mmx::GLUE_35 ( const vector< generic > &  arg_1,
const vector< generic > &  arg_2 
) [static]

Definition at line 198 of file glue_polynomial_generic.cpp.

References interpolate().

                                                                       {
    return interpolate (arg_1, arg_2);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_35 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 227 of file glue_polynomial_p_adic_modular_integer.cpp.

References discriminant().

                                                                           {
    return discriminant (arg_1);
  }
static series<generic> mmx::GLUE_35 ( const series< generic > &  arg_1) [static]

Definition at line 207 of file glue_series_generic.cpp.

References exp().

                                         {
    return exp (arg_1);
  }
static vector<generic> mmx::GLUE_35 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 204 of file glue_polynomial_rational.cpp.

References wrap_subresultants().

                                                                                 {
    return wrap_subresultants (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_35 ( const series< integer > &  arg_1) [static]

Definition at line 207 of file glue_series_integer.cpp.

References arg_1.

                                         {
    return as<series<generic> > (arg_1);
  }
static series<rational> mmx::GLUE_35 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 212 of file glue_series_rational.cpp.

References lcm().

                                                                         {
    return lcm (arg_1, arg_2);
  }
static bool mmx::GLUE_35 ( const vector< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 180 of file glue_vector_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 < arg_2;
  }
static int mmx::GLUE_35 ( const vector< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 182 of file glue_vector_rational.cpp.

References arg_1.

                                                                                    {
    return find (arg_1, arg_2);
  }
static vector<generic> mmx::GLUE_36 ( const matrix< generic > &  arg_1) [static]
static matrix<integer> mmx::GLUE_36 ( const matrix< integer > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 247 of file glue_matrix_integer.cpp.

References arg_2.

                                                               {
    return arg_1 * arg_2;
  }
static matrix<rational> mmx::GLUE_36 ( const vector< rational > &  arg_1) [static]

Definition at line 249 of file glue_matrix_rational.cpp.

References toeplitz_matrix().

                                          {
    return toeplitz_matrix (arg_1);
  }
static series<rational> mmx::GLUE_36 ( const series< rational > &  arg_1) [static]

Definition at line 217 of file glue_series_rational.cpp.

References integrate().

                                          {
    return integrate (arg_1);
  }
static polynomial<generic> mmx::GLUE_36 ( const polynomial< generic > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 203 of file glue_polynomial_generic.cpp.

References arg_2, and shift().

                                                                   {
    return shift (arg_1, arg_2);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_36 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 232 of file glue_polynomial_p_adic_modular_integer.cpp.

References integrate().

                                                                           {
    return integrate (arg_1);
  }
static rational mmx::GLUE_36 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 209 of file glue_polynomial_rational.cpp.

References resultant().

                                                                                 {
    return resultant (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_36 ( const series< generic > &  arg_1) [static]

Definition at line 212 of file glue_series_generic.cpp.

References log().

                                         {
    return log (arg_1);
  }
static bool mmx::GLUE_36 ( const vector< int > &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 189 of file glue_vector_int.cpp.

References arg_2.

                                                               {
    return arg_1 > arg_2;
  }
static bool mmx::GLUE_36 ( const vector< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 187 of file glue_vector_rational.cpp.

References arg_1.

                                                                                    {
    return contains (arg_1, arg_2);
  }
static bool mmx::GLUE_36 ( const vector< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 185 of file glue_vector_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 > arg_2;
  }
static vector<generic> mmx::GLUE_37 ( const matrix< generic > &  arg_1) [static]
static vector<integer> mmx::GLUE_37 ( const matrix< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 252 of file glue_matrix_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 * arg_2;
  }
static matrix<rational> mmx::GLUE_37 ( const vector< rational > &  arg_1) [static]

Definition at line 254 of file glue_matrix_rational.cpp.

References hankel_matrix().

                                          {
    return hankel_matrix (arg_1);
  }
static polynomial<generic> mmx::GLUE_37 ( const polynomial< generic > &  arg_1) [static]

Definition at line 208 of file glue_polynomial_generic.cpp.

References graeffe().

                                             {
    return graeffe (arg_1);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_37 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_2 
) [static]

Definition at line 237 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2, and compose().

                                                                                                                                           {
    return compose (arg_1, arg_2);
  }
static rational mmx::GLUE_37 ( const polynomial< rational > &  arg_1) [static]

Definition at line 214 of file glue_polynomial_rational.cpp.

References discriminant().

                                              {
    return discriminant (arg_1);
  }
static series<rational> mmx::GLUE_37 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 222 of file glue_series_rational.cpp.

References compose().

                                                                         {
    return compose (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_37 ( const series< generic > &  arg_1) [static]

Definition at line 217 of file glue_series_generic.cpp.

References cos().

                                         {
    return cos (arg_1);
  }
static vector<generic> mmx::GLUE_37 ( const vector< int > &  arg_1) [static]

Definition at line 194 of file glue_vector_int.cpp.

References arg_1.

                                     {
    return as<vector<generic> > (arg_1);
  }
static vector<generic> mmx::GLUE_37 ( const vector< integer > &  arg_1) [static]

Definition at line 190 of file glue_vector_integer.cpp.

References arg_1.

                                         {
    return as<vector<generic> > (arg_1);
  }
static vector<generic> mmx::GLUE_38 ( const matrix< generic > &  arg_1) [static]
static vector<integer> mmx::GLUE_38 ( const vector< integer > &  arg_1,
const matrix< integer > &  arg_2 
) [static]

Definition at line 257 of file glue_matrix_integer.cpp.

References arg_2.

                                                                       {
    return arg_1 * arg_2;
  }
static matrix<rational> mmx::GLUE_38 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 259 of file glue_matrix_rational.cpp.

References tensor_matrix().

                                                                         {
    return tensor_matrix (arg_1, arg_2);
  }
static generic mmx::GLUE_38 ( const polynomial< generic > &  arg_1) [static]

Definition at line 213 of file glue_polynomial_generic.cpp.

References contents().

                                             {
    return contents (arg_1);
  }
static polynomial<rational> mmx::GLUE_38 ( const polynomial< rational > &  arg_1) [static]

Definition at line 219 of file glue_polynomial_rational.cpp.

References integrate().

                                              {
    return integrate (arg_1);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_38 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 242 of file glue_polynomial_p_adic_modular_integer.cpp.

References q_difference().

                                                                                                                              {
    return q_difference (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_38 ( const series< generic > &  arg_1) [static]

Definition at line 222 of file glue_series_generic.cpp.

References sin().

                                         {
    return sin (arg_1);
  }
static series<rational> mmx::GLUE_38 ( const series< rational > &  arg_1) [static]

Definition at line 227 of file glue_series_rational.cpp.

References reverse().

                                          {
    return reverse (arg_1);
  }
static vector<rational> mmx::GLUE_38 ( const vector< rational > &  arg_1) [static]

Definition at line 197 of file glue_vector_rational.cpp.

References square().

                                          {
    return square (arg_1);
  }
static matrix<generic> mmx::GLUE_39 ( const matrix< generic > &  arg_1) [static]

Definition at line 262 of file glue_matrix_generic.cpp.

References kernel().

                                         {
    return kernel (arg_1);
  }
static row_tuple<generic> mmx::GLUE_39 ( const row_tuple< integer > &  arg_1) [static]

Definition at line 262 of file glue_matrix_integer.cpp.

References arg_1.

                                            {
    return as<row_tuple<generic> > (arg_1);
  }
static matrix<rational> mmx::GLUE_39 ( const vector< rational > &  arg_1) [static]

Definition at line 264 of file glue_matrix_rational.cpp.

References vandermonde().

                                          {
    return vandermonde (arg_1);
  }
static vector<rational> mmx::GLUE_39 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 202 of file glue_vector_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 + arg_2;
  }
static polynomial<generic> mmx::GLUE_39 ( const polynomial< generic > &  arg_1) [static]

Definition at line 218 of file glue_polynomial_generic.cpp.

References primitive_part().

                                             {
    return primitive_part (arg_1);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_39 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 247 of file glue_polynomial_p_adic_modular_integer.cpp.

References dilate().

                                                                                             {
    return dilate (arg_1, arg_2);
  }
static polynomial<rational> mmx::GLUE_39 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 224 of file glue_polynomial_rational.cpp.

References compose().

                                                                                 {
    return compose (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_39 ( const series< generic > &  arg_1) [static]

Definition at line 227 of file glue_series_generic.cpp.

References tan().

                                         {
    return tan (arg_1);
  }
static series<rational> mmx::GLUE_39 ( const series< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 232 of file glue_series_rational.cpp.

References q_difference().

                                                                 {
    return q_difference (arg_1, arg_2);
  }
static matrix<integer> mmx::GLUE_4 ( const int &  arg_1) [static]

Definition at line 87 of file glue_matrix_integer.cpp.

References identity_matrix_integer.

static matrix<mmx_modular(integer) > mmx::GLUE_4 ( const tuple< row_tuple< mmx_modular(integer) > > &  arg_1) [static]

Definition at line 91 of file glue_matrix_modular_integer.cpp.

References arg_1, as_vector(), and matrix_new().

                                                                 {
    return matrix_new (as_vector (arg_1));
  }
static row_tuple<rational> mmx::GLUE_4 ( const tuple< rational > &  arg_1) [static]

Definition at line 89 of file glue_matrix_rational.cpp.

References as_vector().

                                        {
    return row_tuple<rational > (as_vector (arg_1));
  }
static void mmx::GLUE_4 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const bool &  arg_2 
) [static]

Definition at line 49 of file glue_p_adic_modular_integer.cpp.

References set_formula_output().

static int mmx::GLUE_4 ( const polynomial< mmx_modular(integer), polynomial_carry_variant_helper< mmx_modular(integer) >::PV > &  arg_1) [static]

Definition at line 45 of file glue_p_expansion_modular_integer.cpp.

References N().

                                                                  {
    return N (arg_1);
  }
static permutation mmx::GLUE_4 ( const int &  arg_1,
const int &  arg_2 
) [static]

Definition at line 29 of file glue_permutation.cpp.

References cycle().

                                              {
    return cycle (arg_1, arg_2);
  }
static iterator<generic> mmx::GLUE_4 ( const polynomial< generic > &  arg_1) [static]

Definition at line 43 of file glue_polynomial_generic.cpp.

References iterate().

                                            {
    return iterate (arg_1);
  }
static polynomial<integer> mmx::GLUE_4 ( const integer &  arg_1) [static]

Definition at line 45 of file glue_polynomial_integer.cpp.

References arg_1.

                                {
    return polynomial<integer > (arg_1);
  }
static polynomial<mmx_modular(integer) > mmx::GLUE_4 ( const mmx_modular(integer)&  arg_1) [static]

Definition at line 54 of file glue_polynomial_modular_integer.cpp.

References arg_1.

                                             {
    return polynomial<mmx_modular(integer) > (arg_1);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_4 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1) [static]

Definition at line 72 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1.

                                                             {
    return polynomial<simple_p_adic(mmx_modular(integer) ) > (arg_1);
  }
static int mmx::GLUE_4 ( const vector< integer > &  arg_1) [static]

Definition at line 25 of file glue_vector_integer.cpp.

References N().

                                        {
    return N (arg_1);
  }
static polynomial<rational> mmx::GLUE_4 ( const rational &  arg_1) [static]

Definition at line 49 of file glue_polynomial_rational.cpp.

References arg_1.

                                 {
    return polynomial<rational > (arg_1);
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_4 ( const polynomial< rational > &  arg_1) [static]

Definition at line 50 of file glue_quotient_polynomial_rational.cpp.

References simple_quotient.

                                             {
    return (simple_quotient(polynomial<rational> ) (arg_1));
  }
static void mmx::GLUE_4 ( const series< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 52 of file glue_series_generic.cpp.

References set_cancel_order().

static void mmx::GLUE_4 ( const series< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 52 of file glue_series_integer.cpp.

References set_cancel_order().

static void mmx::GLUE_4 ( const series< mmx_modular(integer) > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 63 of file glue_series_modular_integer.cpp.

References set_output_order().

static void mmx::GLUE_4 ( const series< rational > &  arg_1,
const bool &  arg_2 
) [static]

Definition at line 57 of file glue_series_rational.cpp.

References set_formula_output().

static int mmx::GLUE_4 ( const vector< rational > &  arg_1) [static]

Definition at line 27 of file glue_vector_rational.cpp.

References N().

                                         {
    return N (arg_1);
  }
static int mmx::GLUE_4 ( const vector< int > &  arg_1) [static]

Definition at line 29 of file glue_vector_int.cpp.

References N().

                                    {
    return N (arg_1);
  }
static mmx_floating mmx::GLUE_4 ( const algebraic_real &  arg_1) [static]

Definition at line 56 of file glue_algebraic_number.cpp.

                                       {
    return as_floating (arg_1);
  }
static matrix<generic> mmx::GLUE_4 ( const tuple< row_tuple< generic > > &  arg_1) [static]

Definition at line 87 of file glue_matrix_generic.cpp.

References arg_1, as_vector(), and matrix_new().

                                                   {
    return matrix_new (as_vector (arg_1));
  }
static matrix<generic> mmx::GLUE_40 ( const matrix< generic > &  arg_1) [static]

Definition at line 267 of file glue_matrix_generic.cpp.

References image().

                                         {
    return image (arg_1);
  }
static matrix<generic> mmx::GLUE_40 ( const matrix< integer > &  arg_1) [static]

Definition at line 267 of file glue_matrix_integer.cpp.

References arg_1.

                                         {
    return as<matrix<generic> > (arg_1);
  }
static matrix<rational> mmx::GLUE_40 ( const matrix< rational > &  arg_1) [static]

Definition at line 269 of file glue_matrix_rational.cpp.

References arg_1.

                                          {
    return -arg_1;
  }
static polynomial<generic> mmx::GLUE_40 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 223 of file glue_polynomial_generic.cpp.

References gcd().

                                                                               {
    return gcd (arg_1, arg_2);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_40 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_2 
) [static]

Definition at line 252 of file glue_polynomial_p_adic_modular_integer.cpp.

References shift().

                                                                                                                              {
    return shift (arg_1, arg_2);
  }
static series<rational> mmx::GLUE_40 ( const series< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 237 of file glue_series_rational.cpp.

References series_shift_default.

static polynomial<rational> mmx::GLUE_40 ( const polynomial< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 229 of file glue_polynomial_rational.cpp.

References q_difference().

                                                                     {
    return q_difference (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_40 ( const series< generic > &  arg_1) [static]

Definition at line 232 of file glue_series_generic.cpp.

References acos().

                                         {
    return acos (arg_1);
  }
static vector<rational> mmx::GLUE_40 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 207 of file glue_vector_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 - arg_2;
  }
static int mmx::GLUE_41 ( const matrix< generic > &  arg_1) [static]

Definition at line 272 of file glue_matrix_generic.cpp.

References rank().

                                         {
    return rank (arg_1);
  }
static matrix<rational> mmx::GLUE_41 ( const matrix< rational > &  arg_1) [static]

Definition at line 274 of file glue_matrix_rational.cpp.

References square().

                                          {
    return square (arg_1);
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_41 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 257 of file glue_polynomial_p_adic_modular_integer.cpp.

References graeffe().

                                                                           {
    return graeffe (arg_1);
  }
static polynomial<rational> mmx::GLUE_41 ( const polynomial< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 234 of file glue_polynomial_rational.cpp.

References dilate().

                                                                {
    return dilate (arg_1, arg_2);
  }
static vector<rational> mmx::GLUE_41 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 212 of file glue_vector_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 * arg_2;
  }
static polynomial<generic> mmx::GLUE_41 ( const polynomial< generic > &  arg_1,
const polynomial< generic > &  arg_2 
) [static]

Definition at line 228 of file glue_polynomial_generic.cpp.

References lcm().

                                                                               {
    return lcm (arg_1, arg_2);
  }
static series<rational> mmx::GLUE_41 ( const series< rational > &  arg_1,
const rational &  arg_2,
const int &  arg_3 
) [static]

Definition at line 242 of file glue_series_rational.cpp.

References shift().

                                                                                   {
    return shift (arg_1, arg_2, arg_3);
  }
static series<generic> mmx::GLUE_41 ( const series< generic > &  arg_1) [static]

Definition at line 237 of file glue_series_generic.cpp.

References asin().

                                         {
    return asin (arg_1);
  }
static algebraic_number mmx::GLUE_41 ( const algebraic_number &  arg_1,
const algebraic_number &  arg_2 
) [static]
static matrix<generic> mmx::GLUE_42 ( const matrix< generic > &  arg_1) [static]

Definition at line 277 of file glue_matrix_generic.cpp.

References invert().

                                         {
    return invert (arg_1);
  }
static matrix<rational> mmx::GLUE_42 ( const matrix< rational > &  arg_1,
const matrix< rational > &  arg_2 
) [static]

Definition at line 279 of file glue_matrix_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 + arg_2;
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_42 ( const polynomial< mmx_modular(integer) > &  arg_1) [static]

Definition at line 262 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1.

                                                           {
    return as<polynomial<simple_p_adic(mmx_modular(integer) ) > > (arg_1);
  }
static polynomial<rational> mmx::GLUE_42 ( const vector< rational > &  arg_1) [static]

Definition at line 239 of file glue_polynomial_rational.cpp.

References annulator().

                                          {
    return annulator (arg_1);
  }
static series<generic> mmx::GLUE_42 ( const series< generic > &  arg_1) [static]

Definition at line 242 of file glue_series_generic.cpp.

References atan().

                                         {
    return atan (arg_1);
  }
static bool mmx::GLUE_42 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 247 of file glue_series_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 <= arg_2;
  }
static vector<rational> mmx::GLUE_42 ( const rational &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 217 of file glue_vector_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 + arg_2;
  }
static algebraic_number mmx::GLUE_42 ( const algebraic_number &  arg_1,
const algebraic_number &  arg_2 
) [static]
static matrix<generic> mmx::GLUE_43 ( const matrix< generic > &  arg_1) [static]

Definition at line 282 of file glue_matrix_generic.cpp.

References derive().

                                         {
    return derive (arg_1);
  }
static matrix<rational> mmx::GLUE_43 ( const matrix< rational > &  arg_1,
const matrix< rational > &  arg_2 
) [static]

Definition at line 284 of file glue_matrix_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 - arg_2;
  }
static polynomial<generic> mmx::GLUE_43 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 267 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1.

                                                                           {
    return as<polynomial<generic> > (arg_1);
  }
static bool mmx::GLUE_43 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 247 of file glue_series_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 <= arg_2;
  }
static bool mmx::GLUE_43 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 252 of file glue_series_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 >= arg_2;
  }
static vector<rational> mmx::GLUE_43 ( const vector< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 222 of file glue_vector_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 + arg_2;
  }
static polynomial<rational> mmx::GLUE_43 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 244 of file glue_polynomial_rational.cpp.

References interpolate().

                                                                         {
    return interpolate (arg_1, arg_2);
  }
static algebraic_number mmx::GLUE_43 ( const rational &  arg_1,
const algebraic_number &  arg_2 
) [static]
static matrix<generic> mmx::GLUE_44 ( const matrix< generic > &  arg_1) [static]

Definition at line 287 of file glue_matrix_generic.cpp.

References integrate().

                                         {
    return integrate (arg_1);
  }
static polynomial<rational> mmx::GLUE_44 ( const polynomial< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 249 of file glue_polynomial_rational.cpp.

References shift().

                                                                     {
    return shift (arg_1, arg_2);
  }
static bool mmx::GLUE_44 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 252 of file glue_series_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 >= arg_2;
  }
static bool mmx::GLUE_44 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 257 of file glue_series_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 < arg_2;
  }
static vector<rational> mmx::GLUE_44 ( const rational &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 227 of file glue_vector_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 - arg_2;
  }
static matrix<rational> mmx::GLUE_44 ( const matrix< rational > &  arg_1,
const matrix< rational > &  arg_2 
) [static]

Definition at line 289 of file glue_matrix_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 * arg_2;
  }
static algebraic_number mmx::GLUE_44 ( const algebraic_number &  arg_1,
const rational &  arg_2 
) [static]
static matrix<rational> mmx::GLUE_45 ( const rational &  arg_1,
const matrix< rational > &  arg_2 
) [static]

Definition at line 294 of file glue_matrix_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 + arg_2;
  }
static polynomial<rational> mmx::GLUE_45 ( const polynomial< rational > &  arg_1) [static]

Definition at line 254 of file glue_polynomial_rational.cpp.

References graeffe().

                                              {
    return graeffe (arg_1);
  }
static bool mmx::GLUE_45 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 262 of file glue_series_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 > arg_2;
  }
static vector<rational> mmx::GLUE_45 ( const vector< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 232 of file glue_vector_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 - arg_2;
  }
static bool mmx::GLUE_45 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 257 of file glue_series_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 < arg_2;
  }
static algebraic_number mmx::GLUE_45 ( const rational &  arg_1,
const algebraic_number &  arg_2 
) [static]
static matrix<rational> mmx::GLUE_46 ( const matrix< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 299 of file glue_matrix_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 + arg_2;
  }
static vector<rational> mmx::GLUE_46 ( const rational &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 237 of file glue_vector_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 * arg_2;
  }
static rational mmx::GLUE_46 ( const polynomial< rational > &  arg_1) [static]

Definition at line 259 of file glue_polynomial_rational.cpp.

References contents().

                                              {
    return contents (arg_1);
  }
static bool mmx::GLUE_46 ( const series< generic > &  arg_1,
const series< generic > &  arg_2 
) [static]

Definition at line 262 of file glue_series_generic.cpp.

References arg_2.

                                                                       {
    return arg_1 > arg_2;
  }
static series<rational> mmx::GLUE_46 ( const series< integer > &  arg_1) [static]

Definition at line 267 of file glue_series_rational.cpp.

References arg_1.

                                         {
    return as<series<rational> > (arg_1);
  }
static algebraic_number mmx::GLUE_46 ( const algebraic_number &  arg_1,
const rational &  arg_2 
) [static]
static matrix<rational> mmx::GLUE_47 ( const rational &  arg_1,
const matrix< rational > &  arg_2 
) [static]

Definition at line 304 of file glue_matrix_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 - arg_2;
  }
static series<generic> mmx::GLUE_47 ( const routine &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 267 of file glue_series_generic.cpp.

References arg_2, and fixed_point_series().

                                                       {
    return fixed_point_series (arg_1, arg_2);
  }
static series<generic> mmx::GLUE_47 ( const series< rational > &  arg_1) [static]

Definition at line 272 of file glue_series_rational.cpp.

References arg_1.

                                          {
    return as<series<generic> > (arg_1);
  }
static vector<rational> mmx::GLUE_47 ( const vector< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 242 of file glue_vector_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 * arg_2;
  }
static algebraic_number mmx::GLUE_47 ( const rational &  arg_1,
const algebraic_number &  arg_2 
) [static]
static polynomial<rational> mmx::GLUE_47 ( const polynomial< rational > &  arg_1) [static]

Definition at line 264 of file glue_polynomial_rational.cpp.

References primitive_part().

                                              {
    return primitive_part (arg_1);
  }
static series<rational> mmx::GLUE_48 ( const series< rational > &  arg_1,
const series< rational > &  arg_2 
) [static]

Definition at line 277 of file glue_series_rational.cpp.

References pow().

                                                                         {
    return pow (arg_1, arg_2);
  }
static polynomial<rational> mmx::GLUE_48 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 269 of file glue_polynomial_rational.cpp.

References gcd().

                                                                                 {
    return gcd (arg_1, arg_2);
  }
static vector<generic> mmx::GLUE_48 ( const routine &  arg_1,
const vector< generic > &  arg_2 
) [static]
static matrix<rational> mmx::GLUE_48 ( const matrix< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 309 of file glue_matrix_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 - arg_2;
  }
static rational mmx::GLUE_48 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 247 of file glue_vector_rational.cpp.

                                                                         {
    return dot (arg_1, arg_2);
  }
static algebraic_number mmx::GLUE_48 ( const algebraic_number &  arg_1,
const rational &  arg_2 
) [static]
static matrix<rational> mmx::GLUE_49 ( const rational &  arg_1,
const matrix< rational > &  arg_2 
) [static]

Definition at line 314 of file glue_matrix_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 * arg_2;
  }
static polynomial<rational> mmx::GLUE_49 ( const polynomial< rational > &  arg_1,
const polynomial< rational > &  arg_2 
) [static]

Definition at line 274 of file glue_polynomial_rational.cpp.

References lcm().

                                                                                 {
    return lcm (arg_1, arg_2);
  }
static series<rational> mmx::GLUE_49 ( const series< rational > &  arg_1) [static]

Definition at line 282 of file glue_series_rational.cpp.

References sqrt().

                                          {
    return sqrt (arg_1);
  }
static rational mmx::GLUE_49 ( const vector< rational > &  arg_1) [static]

Definition at line 252 of file glue_vector_rational.cpp.

References big_mul().

                                          {
    return big_mul (arg_1);
  }
static series<generic> mmx::GLUE_49 ( const routine &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 277 of file glue_series_generic.cpp.

References arg_2, and integrate_series().

                                                       {
    return integrate_series (arg_1, arg_2);
  }
static algebraic_number mmx::GLUE_49 ( const rational &  arg_1,
const algebraic_number &  arg_2 
) [static]
static row_tuple<integer> mmx::GLUE_5 ( const tuple< integer > &  arg_1) [static]

Definition at line 92 of file glue_matrix_integer.cpp.

References as_vector().

                                       {
    return row_tuple<integer > (as_vector (arg_1));
  }
static int mmx::GLUE_5 ( const matrix< mmx_modular(integer) > &  arg_1) [static]

Definition at line 96 of file glue_matrix_modular_integer.cpp.

References arg_1, and N().

                                                      {
    return N (arg_1);
  }
static matrix<rational> mmx::GLUE_5 ( const tuple< rational > &  arg_1) [static]

Definition at line 94 of file glue_matrix_rational.cpp.

References as_vector(), and matrix_new().

                                        {
    return matrix_new (as_vector (arg_1));
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_5 ( const tuple< mmx_modular(integer) > &  arg_1) [static]

Definition at line 54 of file glue_p_adic_modular_integer.cpp.

References as_vector(), mmx_modular(), and simple_p_adic.

                                                     {
    return (simple_p_adic(mmx_modular(integer) ) (as_vector (arg_1)));
  }
static int mmx::GLUE_5 ( const polynomial< mmx_modular(integer), polynomial_carry_variant_helper< mmx_modular(integer) >::PV > &  arg_1) [static]

Definition at line 50 of file glue_p_expansion_modular_integer.cpp.

References deg().

                                                                  {
    return deg (arg_1);
  }
static vector<int> mmx::GLUE_5 ( const permutation &  arg_1) [static]

Definition at line 34 of file glue_permutation.cpp.

                                    {
    return as_vector_int (arg_1);
  }
static void mmx::GLUE_5 ( const series< generic > &  arg_1,
const bool &  arg_2 
) [static]

Definition at line 57 of file glue_series_generic.cpp.

References set_formula_output().

static iterator<generic> mmx::GLUE_5 ( const polynomial< integer > &  arg_1) [static]

Definition at line 50 of file glue_polynomial_integer.cpp.

References iterate().

                                            {
    return as<iterator<generic> > (iterate (arg_1));
  }
static iterator<generic> mmx::GLUE_5 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 77 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1, and iterate().

                                                                          {
    return as<iterator<generic> > (iterate (arg_1));
  }
static int mmx::GLUE_5 ( const polynomial< generic > &  arg_1) [static]

Definition at line 48 of file glue_polynomial_generic.cpp.

References N().

                                            {
    return N (arg_1);
  }
static iterator<generic> mmx::GLUE_5 ( const polynomial< rational > &  arg_1) [static]

Definition at line 54 of file glue_polynomial_rational.cpp.

References iterate().

                                             {
    return as<iterator<generic> > (iterate (arg_1));
  }
static polynomial<rational> mmx::GLUE_5 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1) [static]

Definition at line 55 of file glue_quotient_polynomial_rational.cpp.

References numerator().

                                                               {
    return numerator (arg_1);
  }
static void mmx::GLUE_5 ( const series< integer > &  arg_1,
const bool &  arg_2 
) [static]

Definition at line 57 of file glue_series_integer.cpp.

References set_formula_output().

static iterator<generic> mmx::GLUE_5 ( const polynomial< mmx_modular(integer) > &  arg_1) [static]

Definition at line 59 of file glue_polynomial_modular_integer.cpp.

References arg_1, and iterate().

                                                          {
    return as<iterator<generic> > (iterate (arg_1));
  }
static void mmx::GLUE_5 ( const series< mmx_modular(integer) > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 68 of file glue_series_modular_integer.cpp.

References set_cancel_order().

static int mmx::GLUE_5 ( const vector< int > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 34 of file glue_vector_int.cpp.

References arg_2.

                                                      {
    return arg_1[arg_2];
  }
static integer mmx::GLUE_5 ( const vector< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 30 of file glue_vector_integer.cpp.

References arg_2.

                                                          {
    return arg_1[arg_2];
  }
static rational mmx::GLUE_5 ( const vector< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 32 of file glue_vector_rational.cpp.

References arg_2.

                                                           {
    return arg_1[arg_2];
  }
static matrix<generic> mmx::GLUE_5 ( const tuple< row_tuple< generic > > &  arg_1) [static]

Definition at line 92 of file glue_matrix_generic.cpp.

References arg_1, as_vector(), and matrix_new().

                                                   {
    return matrix_new (as_vector (arg_1));
  }
static matrix<rational> mmx::GLUE_50 ( const matrix< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 319 of file glue_matrix_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 * arg_2;
  }
static polynomial<rational> mmx::GLUE_50 ( const polynomial< integer > &  arg_1) [static]

Definition at line 279 of file glue_polynomial_rational.cpp.

References arg_1.

                                             {
    return as<polynomial<rational> > (arg_1);
  }
static vector<generic> mmx::GLUE_50 ( const routine &  arg_1,
const vector< generic > &  arg_2 
) [static]

Definition at line 282 of file glue_series_generic.cpp.

References gen_integrate_vector_series().

static series<rational> mmx::GLUE_50 ( const series< rational > &  arg_1) [static]

Definition at line 287 of file glue_series_rational.cpp.

References exp().

                                          {
    return exp (arg_1);
  }
static rational mmx::GLUE_50 ( const vector< rational > &  arg_1) [static]

Definition at line 257 of file glue_vector_rational.cpp.

References big_add().

                                          {
    return big_add (arg_1);
  }
static algebraic_number mmx::GLUE_50 ( const algebraic_number &  arg_1,
const rational &  arg_2 
) [static]
static vector<rational> mmx::GLUE_51 ( const matrix< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 324 of file glue_matrix_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 * arg_2;
  }
static series<generic> mmx::GLUE_51 ( const routine &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 287 of file glue_series_generic.cpp.

References arg_2, and implicit_series().

                                                       {
    return implicit_series (arg_1, arg_2);
  }
static series<rational> mmx::GLUE_51 ( const series< rational > &  arg_1) [static]

Definition at line 292 of file glue_series_rational.cpp.

References log().

                                          {
    return log (arg_1);
  }
static vector<rational> mmx::GLUE_51 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 262 of file glue_vector_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 / arg_2;
  }
static polynomial<generic> mmx::GLUE_51 ( const polynomial< rational > &  arg_1) [static]

Definition at line 284 of file glue_polynomial_rational.cpp.

References arg_1.

                                              {
    return as<polynomial<generic> > (arg_1);
  }
static algebraic_number mmx::GLUE_51 ( const algebraic_number &  arg_1) [static]
static polynomial<complex<rational> > mmx::GLUE_52 ( const tuple< complex< rational > > &  arg_1) [static]

Definition at line 289 of file glue_polynomial_rational.cpp.

References arg_1, as_vector(), and polynomial_reverse().

static vector<rational> mmx::GLUE_52 ( const vector< rational > &  arg_1,
const matrix< rational > &  arg_2 
) [static]

Definition at line 329 of file glue_matrix_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 * arg_2;
  }
static vector<generic> mmx::GLUE_52 ( const routine &  arg_1,
const vector< generic > &  arg_2 
) [static]

Definition at line 292 of file glue_series_generic.cpp.

References gen_implicit_vector_series().

static vector<rational> mmx::GLUE_52 ( const rational &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 267 of file glue_vector_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 / arg_2;
  }
static series<rational> mmx::GLUE_52 ( const series< rational > &  arg_1) [static]

Definition at line 297 of file glue_series_rational.cpp.

References cos().

                                          {
    return cos (arg_1);
  }
static algebraic_number mmx::GLUE_52 ( const algebraic_number &  arg_1,
const int &  arg_2 
) [static]
static matrix<rational> mmx::GLUE_53 ( const rational &  arg_1,
const matrix< rational > &  arg_2 
) [static]

Definition at line 334 of file glue_matrix_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 / arg_2;
  }
static polynomial<complex<rational> > mmx::GLUE_53 ( const tuple< complex< rational > > &  arg_1) [static]

Definition at line 294 of file glue_polynomial_rational.cpp.

References arg_1, and as_vector().

                                                   {
    return polynomial<complex<rational> > (as_vector (arg_1));
  }
static series<rational> mmx::GLUE_53 ( const series< rational > &  arg_1) [static]

Definition at line 302 of file glue_series_rational.cpp.

References sin().

                                          {
    return sin (arg_1);
  }
static vector<rational> mmx::GLUE_53 ( const vector< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 272 of file glue_vector_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 / arg_2;
  }
static algebraic_number mmx::GLUE_53 ( const algebraic_real &  arg_1,
const algebraic_real &  arg_2 
) [static]
static matrix<rational> mmx::GLUE_54 ( const matrix< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 339 of file glue_matrix_rational.cpp.

References arg_2.

                                                                 {
    return arg_1 / arg_2;
  }
static void mmx::GLUE_54 ( const polynomial< complex< rational > > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 299 of file glue_polynomial_rational.cpp.

References arg_1, arg_2, and set_variable_name().

static series<rational> mmx::GLUE_54 ( const series< rational > &  arg_1) [static]

Definition at line 307 of file glue_series_rational.cpp.

References tan().

                                          {
    return tan (arg_1);
  }
static bool mmx::GLUE_54 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 277 of file glue_vector_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 <= arg_2;
  }
static algebraic_real mmx::GLUE_54 ( const algebraic_number &  arg_1) [static]
static matrix<rational> mmx::GLUE_55 ( const matrix< rational > &  arg_1,
const matrix< rational > &  arg_2 
) [static]

Definition at line 344 of file glue_matrix_rational.cpp.

References krylov().

                                                                         {
    return krylov (arg_1, arg_2);
  }
static polynomial<complex<rational> > mmx::GLUE_55 ( const complex< rational > &  arg_1) [static]

Definition at line 304 of file glue_polynomial_rational.cpp.

References arg_1.

                                           {
    return polynomial<complex<rational> > (arg_1);
  }
static algebraic_real mmx::GLUE_55 ( const algebraic_number &  arg_1) [static]
static bool mmx::GLUE_55 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 282 of file glue_vector_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 >= arg_2;
  }
static series<rational> mmx::GLUE_55 ( const series< rational > &  arg_1) [static]

Definition at line 312 of file glue_series_rational.cpp.

References acos().

                                          {
    return acos (arg_1);
  }
static series<rational> mmx::GLUE_56 ( const series< rational > &  arg_1) [static]

Definition at line 317 of file glue_series_rational.cpp.

References asin().

                                          {
    return asin (arg_1);
  }
static rational mmx::GLUE_56 ( const matrix< rational > &  arg_1) [static]

Definition at line 349 of file glue_matrix_rational.cpp.

References det().

                                          {
    return det (arg_1);
  }
static iterator<generic> mmx::GLUE_56 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 309 of file glue_polynomial_rational.cpp.

References arg_1, and iterate().

                                                        {
    return as<iterator<generic> > (iterate (arg_1));
  }
static bool mmx::GLUE_56 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 287 of file glue_vector_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 < arg_2;
  }
static algebraic_real mmx::GLUE_56 ( const algebraic_number &  arg_1) [static]
static matrix<rational> mmx::GLUE_57 ( const matrix< rational > &  arg_1) [static]

Definition at line 354 of file glue_matrix_rational.cpp.

References row_echelon().

                                          {
    return row_echelon (arg_1);
  }
static int mmx::GLUE_57 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 314 of file glue_polynomial_rational.cpp.

References arg_1, and N().

                                                        {
    return N (arg_1);
  }
static series<rational> mmx::GLUE_57 ( const series< rational > &  arg_1) [static]

Definition at line 322 of file glue_series_rational.cpp.

References atan().

                                          {
    return atan (arg_1);
  }
static bool mmx::GLUE_57 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 292 of file glue_vector_rational.cpp.

References arg_2.

                                                                         {
    return arg_1 > arg_2;
  }
static algebraic_number mmx::GLUE_57 ( const algebraic_number &  arg_1) [static]
static matrix<rational> mmx::GLUE_58 ( const matrix< rational > &  arg_1) [static]

Definition at line 359 of file glue_matrix_rational.cpp.

References column_echelon().

                                          {
    return column_echelon (arg_1);
  }
static int mmx::GLUE_58 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 319 of file glue_polynomial_rational.cpp.

References arg_1, and deg().

                                                        {
    return deg (arg_1);
  }
static unknown<rational> mmx::GLUE_58 ( const rational &  arg_1) [static]

Definition at line 327 of file glue_series_rational.cpp.

References arg_1.

                                  {
    return unknown<rational > (arg_1);
  }
static vector<rational> mmx::GLUE_58 ( const vector< rational > &  arg_1) [static]

Definition at line 297 of file glue_vector_rational.cpp.

References abs().

                                          {
    return abs (arg_1);
  }
static algebraic_number mmx::GLUE_58 ( const algebraic_number &  arg_1) [static]
static matrix<rational> mmx::GLUE_59 ( const matrix< rational > &  arg_1) [static]

Definition at line 364 of file glue_matrix_rational.cpp.

References row_reduced_echelon().

                                          {
    return row_reduced_echelon (arg_1);
  }
static complex<rational> mmx::GLUE_59 ( const polynomial< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 324 of file glue_polynomial_rational.cpp.

References arg_1, and arg_2.

                                                                          {
    return arg_1[arg_2];
  }
static unknown<rational> mmx::GLUE_59 ( const unknown< rational > &  arg_1) [static]

Definition at line 332 of file glue_series_rational.cpp.

References arg_1.

                                           {
    return -arg_1;
  }
static algebraic_number mmx::GLUE_59 ( const algebraic_number &  arg_1) [static]
static vector<rational> mmx::GLUE_59 ( const vector< integer > &  arg_1) [static]

Definition at line 302 of file glue_vector_rational.cpp.

References arg_1.

                                         {
    return as<vector<rational> > (arg_1);
  }
static matrix<integer> mmx::GLUE_6 ( const tuple< integer > &  arg_1) [static]

Definition at line 97 of file glue_matrix_integer.cpp.

References as_vector(), and matrix_new().

                                       {
    return matrix_new (as_vector (arg_1));
  }
static int mmx::GLUE_6 ( const matrix< mmx_modular(integer) > &  arg_1) [static]

Definition at line 101 of file glue_matrix_modular_integer.cpp.

References arg_1, and rows().

                                                      {
    return rows (arg_1);
  }
static matrix<rational> mmx::GLUE_6 ( const tuple< row_tuple< rational > > &  arg_1) [static]

Definition at line 99 of file glue_matrix_rational.cpp.

References arg_1, as_vector(), and matrix_new().

                                                    {
    return matrix_new (as_vector (arg_1));
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_6 ( const mmx_modular(integer)&  arg_1) [static]

Definition at line 59 of file glue_p_adic_modular_integer.cpp.

References mmx_modular(), and simple_p_adic.

                                             {
    return (simple_p_adic(mmx_modular(integer) ) (arg_1));
  }
static polynomial<rational> mmx::GLUE_6 ( const algebraic_real &  arg_1) [static]

Definition at line 66 of file glue_algebraic_number.cpp.

References annihilator().

                                       {
    return annihilator (arg_1);
  }
static iterator<generic> mmx::GLUE_6 ( const permutation &  arg_1) [static]

Definition at line 39 of file glue_permutation.cpp.

References iterate_int().

                                    {
    return as<iterator<generic> > (iterate_int (arg_1));
  }
static int mmx::GLUE_6 ( const polynomial< generic > &  arg_1) [static]

Definition at line 53 of file glue_polynomial_generic.cpp.

References deg().

                                            {
    return deg (arg_1);
  }
static int mmx::GLUE_6 ( const polynomial< integer > &  arg_1) [static]

Definition at line 55 of file glue_polynomial_integer.cpp.

References N().

                                            {
    return N (arg_1);
  }
static int mmx::GLUE_6 ( const polynomial< mmx_modular(integer) > &  arg_1) [static]

Definition at line 64 of file glue_polynomial_modular_integer.cpp.

References arg_1, and N().

                                                          {
    return N (arg_1);
  }
static int mmx::GLUE_6 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 82 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1, and N().

                                                                          {
    return N (arg_1);
  }
static int mmx::GLUE_6 ( const polynomial< rational > &  arg_1) [static]

Definition at line 59 of file glue_polynomial_rational.cpp.

References N().

                                             {
    return N (arg_1);
  }
static polynomial<rational> mmx::GLUE_6 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1) [static]

Definition at line 60 of file glue_quotient_polynomial_rational.cpp.

References denominator().

                                                               {
    return denominator (arg_1);
  }
static series<generic> mmx::GLUE_6 ( const tuple< generic > &  arg_1) [static]

Definition at line 62 of file glue_series_generic.cpp.

References as_vector().

                                       {
    return series<generic > (as_vector (arg_1));
  }
static void mmx::GLUE_6 ( const series< mmx_modular(integer) > &  arg_1,
const bool &  arg_2 
) [static]

Definition at line 73 of file glue_series_modular_integer.cpp.

References set_formula_output().

static series<rational> mmx::GLUE_6 ( const rational &  arg_1) [static]

Definition at line 67 of file glue_series_rational.cpp.

References arg_1.

                                 {
    return series<rational > (arg_1);
  }
static alias<int> mmx::GLUE_6 ( const alias< vector< int > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 39 of file glue_vector_int.cpp.

References arg_1, and arg_2.

                                                              {
    return alias_access<int > (arg_1, arg_2);
  }
static alias<integer> mmx::GLUE_6 ( const alias< vector< integer > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 35 of file glue_vector_integer.cpp.

References arg_1, and arg_2.

                                                                  {
    return alias_access<integer > (arg_1, arg_2);
  }
static alias<rational> mmx::GLUE_6 ( const alias< vector< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 37 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                   {
    return alias_access<rational > (arg_1, arg_2);
  }
static int mmx::GLUE_6 ( const matrix< generic > &  arg_1) [static]

Definition at line 97 of file glue_matrix_generic.cpp.

References N().

                                        {
    return N (arg_1);
  }
static matrix<rational> mmx::GLUE_60 ( const matrix< rational > &  arg_1) [static]
static polynomial<complex<rational> > mmx::GLUE_60 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 329 of file glue_polynomial_rational.cpp.

References arg_1.

                                                        {
    return -arg_1;
  }
static unknown<rational> mmx::GLUE_60 ( const unknown< rational > &  arg_1) [static]

Definition at line 337 of file glue_series_rational.cpp.

References square().

                                           {
    return square (arg_1);
  }
static vector<complex<rational> > mmx::GLUE_60 ( const vector< integer > &  arg_1) [static]

Definition at line 307 of file glue_vector_rational.cpp.

References arg_1.

                                         {
    return as<vector<complex<rational> > > (arg_1);
  }
static vector<generic> mmx::GLUE_61 ( const matrix< rational > &  arg_1) [static]
static vector<generic> mmx::GLUE_61 ( const vector< rational > &  arg_1) [static]

Definition at line 312 of file glue_vector_rational.cpp.

References arg_1.

                                          {
    return as<vector<generic> > (arg_1);
  }
static polynomial<complex<rational> > mmx::GLUE_61 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 334 of file glue_polynomial_rational.cpp.

References arg_1, and square().

                                                        {
    return square (arg_1);
  }
static unknown<rational> mmx::GLUE_61 ( const unknown< rational > &  arg_1,
const unknown< rational > &  arg_2 
) [static]

Definition at line 342 of file glue_series_rational.cpp.

References arg_2.

                                                                           {
    return arg_1 + arg_2;
  }
static vector<generic> mmx::GLUE_62 ( const matrix< rational > &  arg_1) [static]
static polynomial<complex<rational> > mmx::GLUE_62 ( const polynomial< complex< rational > > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 339 of file glue_polynomial_rational.cpp.

References arg_1, and arg_2.

                                                                                                     {
    return arg_1 + arg_2;
  }
static vector<complex<rational> > mmx::GLUE_62 ( const vector< rational > &  arg_1) [static]

Definition at line 317 of file glue_vector_rational.cpp.

References arg_1.

                                          {
    return as<vector<complex<rational> > > (arg_1);
  }
static unknown<rational> mmx::GLUE_62 ( const unknown< rational > &  arg_1,
const unknown< rational > &  arg_2 
) [static]

Definition at line 347 of file glue_series_rational.cpp.

References arg_2.

                                                                           {
    return arg_1 - arg_2;
  }
static vector<generic> mmx::GLUE_63 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 322 of file glue_vector_rational.cpp.

References arg_1.

                                                    {
    return as<vector<generic> > (arg_1);
  }
static vector<generic> mmx::GLUE_63 ( const matrix< rational > &  arg_1) [static]
static polynomial<complex<rational> > mmx::GLUE_63 ( const polynomial< complex< rational > > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 344 of file glue_polynomial_rational.cpp.

References arg_1, and arg_2.

                                                                                                     {
    return arg_1 - arg_2;
  }
static unknown<rational> mmx::GLUE_63 ( const rational &  arg_1,
const unknown< rational > &  arg_2 
) [static]

Definition at line 352 of file glue_series_rational.cpp.

References arg_2.

                                                                  {
    return arg_1 * arg_2;
  }
static polynomial<complex<rational> > mmx::GLUE_64 ( const polynomial< complex< rational > > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 349 of file glue_polynomial_rational.cpp.

References arg_1, and arg_2.

                                                                                                     {
    return arg_1 * arg_2;
  }
static unknown<rational> mmx::GLUE_64 ( const unknown< rational > &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 357 of file glue_series_rational.cpp.

References arg_2.

                                                                  {
    return arg_1 * arg_2;
  }
static matrix<rational> mmx::GLUE_64 ( const matrix< rational > &  arg_1) [static]
static vector<complex<rational> > mmx::GLUE_64 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 327 of file glue_vector_rational.cpp.

References arg_1.

                                                    {
    return -arg_1;
  }
static matrix<rational> mmx::GLUE_65 ( const matrix< rational > &  arg_1) [static]
static polynomial<complex<rational> > mmx::GLUE_65 ( const complex< rational > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 354 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                                        {
    return arg_1 + arg_2;
  }
static vector<complex<rational> > mmx::GLUE_65 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 332 of file glue_vector_rational.cpp.

References arg_1, and square().

                                                    {
    return square (arg_1);
  }
static unknown<rational> mmx::GLUE_65 ( const unknown< rational > &  arg_1,
const unknown< rational > &  arg_2 
) [static]

Definition at line 362 of file glue_series_rational.cpp.

References arg_2.

                                                                           {
    return arg_1 * arg_2;
  }
static int mmx::GLUE_66 ( const matrix< rational > &  arg_1) [static]
static series<rational> mmx::GLUE_66 ( const routine &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 367 of file glue_series_rational.cpp.

References fixed_point_series().

                                                        {
    return fixed_point_series (arg_1, arg_2);
  }
static polynomial<complex<rational> > mmx::GLUE_66 ( const polynomial< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 359 of file glue_polynomial_rational.cpp.

References arg_1, and arg_2.

                                                                                        {
    return arg_1 + arg_2;
  }
static vector<complex<rational> > mmx::GLUE_66 ( const vector< complex< rational > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 337 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                                             {
    return arg_1 + arg_2;
  }
static matrix<rational> mmx::GLUE_67 ( const matrix< rational > &  arg_1) [static]
static vector<complex<rational> > mmx::GLUE_67 ( const vector< complex< rational > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 342 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                                             {
    return arg_1 - arg_2;
  }
static vector<generic> mmx::GLUE_67 ( const routine &  arg_1,
const vector< rational > &  arg_2 
) [static]
static polynomial<complex<rational> > mmx::GLUE_67 ( const complex< rational > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 364 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                                        {
    return arg_1 - arg_2;
  }
static matrix<rational> mmx::GLUE_68 ( const matrix< rational > &  arg_1) [static]
static polynomial<complex<rational> > mmx::GLUE_68 ( const polynomial< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 369 of file glue_polynomial_rational.cpp.

References arg_1, and arg_2.

                                                                                        {
    return arg_1 - arg_2;
  }
static series<rational> mmx::GLUE_68 ( const routine &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 377 of file glue_series_rational.cpp.

References integrate_series().

                                                        {
    return integrate_series (arg_1, arg_2);
  }
static vector<complex<rational> > mmx::GLUE_68 ( const vector< complex< rational > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 347 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                                             {
    return arg_1 * arg_2;
  }
static row_tuple<rational> mmx::GLUE_69 ( const row_tuple< integer > &  arg_1) [static]

Definition at line 414 of file glue_matrix_rational.cpp.

References arg_1.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), glue_series_rational(), and glue_vector_rational().

                                            {
    return as<row_tuple<rational> > (arg_1);
  }
static vector<complex<rational> > mmx::GLUE_69 ( const complex< rational > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 352 of file glue_vector_rational.cpp.

References arg_2.

                                                                                    {
    return arg_1 + arg_2;
  }
static polynomial<complex<rational> > mmx::GLUE_69 ( const complex< rational > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 374 of file glue_polynomial_rational.cpp.

References arg_2.

                                                                                        {
    return arg_1 * arg_2;
  }
static vector<generic> mmx::GLUE_69 ( const routine &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 382 of file glue_series_rational.cpp.

References gen_integrate_vector_series().

static int mmx::GLUE_7 ( const matrix< mmx_modular(integer) > &  arg_1) [static]

Definition at line 106 of file glue_matrix_modular_integer.cpp.

References arg_1, and cols().

                                                      {
    return cols (arg_1);
  }
static matrix<integer> mmx::GLUE_7 ( const tuple< row_tuple< integer > > &  arg_1) [static]

Definition at line 102 of file glue_matrix_integer.cpp.

References arg_1, as_vector(), and matrix_new().

                                                   {
    return matrix_new (as_vector (arg_1));
  }
static algebraic_real mmx::GLUE_7 ( const algebraic_real &  arg_1) [static]

Definition at line 71 of file glue_algebraic_number.cpp.

References normalize().

                                       {
    return normalize (arg_1);
  }
static iterator<generic> mmx::GLUE_7 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1) [static]

Definition at line 64 of file glue_p_adic_modular_integer.cpp.

References iterate().

                                                             {
    return as<iterator<generic> > (iterate (arg_1));
  }
static matrix<rational> mmx::GLUE_7 ( const tuple< row_tuple< rational > > &  arg_1) [static]

Definition at line 104 of file glue_matrix_rational.cpp.

References arg_1, as_vector(), and matrix_new().

                                                    {
    return matrix_new (as_vector (arg_1));
  }
static int mmx::GLUE_7 ( const polynomial< rational > &  arg_1) [static]

Definition at line 64 of file glue_polynomial_rational.cpp.

References deg().

                                             {
    return deg (arg_1);
  }
static generic mmx::GLUE_7 ( const polynomial< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 58 of file glue_polynomial_generic.cpp.

References arg_2.

                                                              {
    return arg_1[arg_2];
  }
static int mmx::GLUE_7 ( const polynomial< integer > &  arg_1) [static]

Definition at line 60 of file glue_polynomial_integer.cpp.

References deg().

                                            {
    return deg (arg_1);
  }
static int mmx::GLUE_7 ( const polynomial< mmx_modular(integer) > &  arg_1) [static]

Definition at line 69 of file glue_polynomial_modular_integer.cpp.

References arg_1, and deg().

                                                          {
    return deg (arg_1);
  }
static int mmx::GLUE_7 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 87 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1, and deg().

                                                                          {
    return deg (arg_1);
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_7 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1) [static]

Definition at line 65 of file glue_quotient_polynomial_rational.cpp.

References arg_1.

                                                               {
    return -arg_1;
  }
static series<generic> mmx::GLUE_7 ( const polynomial< generic > &  arg_1) [static]

Definition at line 67 of file glue_series_generic.cpp.

References arg_1.

                                            {
    return series<generic > (arg_1);
  }
static series<integer> mmx::GLUE_7 ( const integer &  arg_1) [static]

Definition at line 67 of file glue_series_integer.cpp.

References arg_1.

                                {
    return series<integer > (arg_1);
  }
static series<mmx_modular(integer) > mmx::GLUE_7 ( const tuple< mmx_modular(integer) > &  arg_1) [static]

Definition at line 78 of file glue_series_modular_integer.cpp.

References as_vector().

                                                     {
    return series<mmx_modular(integer) > (as_vector (arg_1));
  }
static vector<integer> mmx::GLUE_7 ( const vector< integer > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 40 of file glue_vector_integer.cpp.

References range().

                                                                            {
    return range (arg_1, arg_2, arg_3);
  }
static vector<rational> mmx::GLUE_7 ( const vector< rational > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 42 of file glue_vector_rational.cpp.

References range().

                                                                             {
    return range (arg_1, arg_2, arg_3);
  }
static vector<int> mmx::GLUE_7 ( const vector< int > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 44 of file glue_vector_int.cpp.

References range().

                                                                        {
    return range (arg_1, arg_2, arg_3);
  }
static int mmx::GLUE_7 ( const permutation &  arg_1) [static]

Definition at line 44 of file glue_permutation.cpp.

References N().

                                    {
    return N (arg_1);
  }
static int mmx::GLUE_7 ( const matrix< generic > &  arg_1) [static]

Definition at line 102 of file glue_matrix_generic.cpp.

References rows().

                                        {
    return rows (arg_1);
  }
static vector<complex<rational> > mmx::GLUE_70 ( const vector< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 357 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                                    {
    return arg_1 + arg_2;
  }
static matrix<rational> mmx::GLUE_70 ( const matrix< integer > &  arg_1) [static]

Definition at line 419 of file glue_matrix_rational.cpp.

References arg_1.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), glue_series_rational(), and glue_vector_rational().

                                         {
    return as<matrix<rational> > (arg_1);
  }
static polynomial<complex<rational> > mmx::GLUE_70 ( const polynomial< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 379 of file glue_polynomial_rational.cpp.

References arg_1, and arg_2.

                                                                                        {
    return arg_1 * arg_2;
  }
static series<rational> mmx::GLUE_70 ( const routine &  arg_1,
const rational &  arg_2 
) [static]

Definition at line 387 of file glue_series_rational.cpp.

References implicit_series().

                                                        {
    return implicit_series (arg_1, arg_2);
  }
static row_tuple<complex<rational> > mmx::GLUE_71 ( const row_tuple< integer > &  arg_1) [static]

Definition at line 424 of file glue_matrix_rational.cpp.

References arg_1.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), glue_series_rational(), and glue_vector_rational().

                                            {
    return as<row_tuple<complex<rational> > > (arg_1);
  }
static vector<complex<rational> > mmx::GLUE_71 ( const complex< rational > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 362 of file glue_vector_rational.cpp.

References arg_2.

                                                                                    {
    return arg_1 - arg_2;
  }
static vector<generic> mmx::GLUE_71 ( const routine &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 392 of file glue_series_rational.cpp.

References gen_implicit_vector_series().

static polynomial<complex<rational> > mmx::GLUE_71 ( const polynomial< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 384 of file glue_polynomial_rational.cpp.

References arg_1.

                                                                          {
    return binpow (arg_1, arg_2);
  }
static matrix<complex<rational> > mmx::GLUE_72 ( const matrix< integer > &  arg_1) [static]

Definition at line 429 of file glue_matrix_rational.cpp.

References arg_1.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), glue_series_rational(), and glue_vector_rational().

                                         {
    return as<matrix<complex<rational> > > (arg_1);
  }
static void mmx::GLUE_72 ( const series< complex< rational > > &  arg_1,
const generic &  arg_2 
) [static]

Definition at line 397 of file glue_series_rational.cpp.

References arg_1, arg_2, and set_variable_name().

static polynomial<complex<rational> > mmx::GLUE_72 ( const polynomial< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 389 of file glue_polynomial_rational.cpp.

References arg_1, and lshiftz().

                                                                          {
    return lshiftz (arg_1, arg_2);
  }
static vector<complex<rational> > mmx::GLUE_72 ( const vector< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 367 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                                    {
    return arg_1 - arg_2;
  }
static row_tuple<generic> mmx::GLUE_73 ( const row_tuple< rational > &  arg_1) [static]

Definition at line 434 of file glue_matrix_rational.cpp.

References arg_1.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), glue_series_rational(), and glue_vector_rational().

                                             {
    return as<row_tuple<generic> > (arg_1);
  }
static polynomial<complex<rational> > mmx::GLUE_73 ( const polynomial< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 394 of file glue_polynomial_rational.cpp.

References arg_1, and rshiftz().

                                                                          {
    return rshiftz (arg_1, arg_2);
  }
static void mmx::GLUE_73 ( const series< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 402 of file glue_series_rational.cpp.

References arg_1, and set_output_order().

static vector<complex<rational> > mmx::GLUE_73 ( const complex< rational > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 372 of file glue_vector_rational.cpp.

References arg_2.

                                                                                    {
    return arg_1 * arg_2;
  }
static matrix<generic> mmx::GLUE_74 ( const matrix< rational > &  arg_1) [static]

Definition at line 439 of file glue_matrix_rational.cpp.

References arg_1.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), glue_series_rational(), and glue_vector_rational().

                                          {
    return as<matrix<generic> > (arg_1);
  }
static polynomial<complex<rational> > mmx::GLUE_74 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 399 of file glue_polynomial_rational.cpp.

References arg_1, and derive().

                                                        {
    return derive (arg_1);
  }
static vector<complex<rational> > mmx::GLUE_74 ( const vector< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 377 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                                    {
    return arg_1 * arg_2;
  }
static void mmx::GLUE_74 ( const series< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 407 of file glue_series_rational.cpp.

References arg_1, and set_cancel_order().

static row_tuple<complex<rational> > mmx::GLUE_75 ( const row_tuple< rational > &  arg_1) [static]

Definition at line 444 of file glue_matrix_rational.cpp.

References arg_1.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), glue_series_rational(), and glue_vector_rational().

                                             {
    return as<row_tuple<complex<rational> > > (arg_1);
  }
static complex<rational> mmx::GLUE_75 ( const vector< complex< rational > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 382 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                                             {
    return dot (arg_1, arg_2);
  }
static polynomial<complex<rational> > mmx::GLUE_75 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 404 of file glue_polynomial_rational.cpp.

References arg_1, and xderive().

                                                        {
    return xderive (arg_1);
  }
static void mmx::GLUE_75 ( const series< complex< rational > > &  arg_1,
const bool &  arg_2 
) [static]

Definition at line 412 of file glue_series_rational.cpp.

References arg_1, and set_formula_output().

static series<complex<rational> > mmx::GLUE_76 ( const tuple< complex< rational > > &  arg_1) [static]

Definition at line 417 of file glue_series_rational.cpp.

References arg_1, and as_vector().

                                                   {
    return series<complex<rational> > (as_vector (arg_1));
  }
static complex<rational> mmx::GLUE_76 ( const polynomial< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 409 of file glue_polynomial_rational.cpp.

References arg_1, and evaluate().

                                                                                        {
    return evaluate (arg_1, arg_2);
  }
static matrix<complex<rational> > mmx::GLUE_76 ( const matrix< rational > &  arg_1) [static]

Definition at line 449 of file glue_matrix_rational.cpp.

References arg_1.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), glue_series_rational(), and glue_vector_rational().

                                          {
    return as<matrix<complex<rational> > > (arg_1);
  }
static complex<rational> mmx::GLUE_76 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 387 of file glue_vector_rational.cpp.

References arg_1, and big_mul().

                                                    {
    return big_mul (arg_1);
  }
static complex<rational> mmx::GLUE_77 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 392 of file glue_vector_rational.cpp.

References arg_1, and big_add().

                                                    {
    return big_add (arg_1);
  }
static row_tuple<generic> mmx::GLUE_77 ( const row_tuple< complex< rational > > &  arg_1) [static]

Definition at line 454 of file glue_matrix_rational.cpp.

References arg_1.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), glue_series_rational(), and glue_vector_rational().

                                                       {
    return as<row_tuple<generic> > (arg_1);
  }
static vector<complex<rational> > mmx::GLUE_77 ( const polynomial< complex< rational > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 414 of file glue_polynomial_rational.cpp.

References arg_1, arg_2, and evaluate().

                                                                                                 {
    return evaluate (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_77 ( const complex< rational > &  arg_1) [static]

Definition at line 422 of file glue_series_rational.cpp.

References arg_1.

                                           {
    return series<complex<rational> > (arg_1);
  }
static series<complex<rational> > mmx::GLUE_78 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 427 of file glue_series_rational.cpp.

References arg_1.

                                                        {
    return series<complex<rational> > (arg_1);
  }
static matrix<generic> mmx::GLUE_78 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 459 of file glue_matrix_rational.cpp.

References arg_1.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), glue_series_rational(), and glue_vector_rational().

                                                    {
    return as<matrix<generic> > (arg_1);
  }
static complex<rational> mmx::GLUE_78 ( const polynomial< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 419 of file glue_polynomial_rational.cpp.

References arg_1, and evaluate().

                                                                                        {
    return evaluate (arg_1, arg_2);
  }
static vector<complex<rational> > mmx::GLUE_78 ( const vector< complex< rational > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 397 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                                             {
    return arg_1 / arg_2;
  }
static vector<complex<rational> > mmx::GLUE_79 ( const complex< rational > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 402 of file glue_vector_rational.cpp.

References arg_2.

                                                                                    {
    return arg_1 / arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_79 ( const complex< rational > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]
static iterator<generic> mmx::GLUE_79 ( const series< complex< rational > > &  arg_1) [static]

Definition at line 432 of file glue_series_rational.cpp.

References arg_1, and iterate().

                                                    {
    return as<iterator<generic> > (iterate (arg_1));
  }
static vector<complex<rational> > mmx::GLUE_79 ( const polynomial< complex< rational > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 424 of file glue_polynomial_rational.cpp.

References arg_1, arg_2, and evaluate().

                                                                                                 {
    return evaluate (arg_1, arg_2);
  }
static algebraic_real mmx::GLUE_8 ( const algebraic_real &  arg_1) [static]

Definition at line 76 of file glue_algebraic_number.cpp.

References arg_1.

                                       {
    return -arg_1;
  }
static matrix<integer> mmx::GLUE_8 ( const tuple< row_tuple< integer > > &  arg_1) [static]

Definition at line 107 of file glue_matrix_integer.cpp.

References arg_1, as_vector(), and matrix_new().

                                                   {
    return matrix_new (as_vector (arg_1));
  }
polynomial_carry_variant_helper< mmx_modular(integer) >::PV mmx::GLUE_8 ( const integer &  arg_1,
const modulus< integer > &  arg_2 
)
static int mmx::GLUE_8 ( const permutation &  arg_1,
const int &  arg_2 
) [static]

Definition at line 49 of file glue_permutation.cpp.

References arg_1.

                                                      {
    return arg_1 (arg_2);
  }
static polynomial<generic> mmx::GLUE_8 ( const polynomial< generic > &  arg_1) [static]

Definition at line 63 of file glue_polynomial_generic.cpp.

References arg_1.

                                            {
    return -arg_1;
  }
static int mmx::GLUE_8 ( const matrix< rational > &  arg_1) [static]

Definition at line 109 of file glue_matrix_rational.cpp.

References N().

                                         {
    return N (arg_1);
  }
static series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> mmx::GLUE_8 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 92 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_2.

                                                                                            {
    return arg_1[arg_2];
  }
static rational mmx::GLUE_8 ( const polynomial< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 69 of file glue_polynomial_rational.cpp.

References arg_2.

                                                               {
    return arg_1[arg_2];
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_8 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1) [static]

Definition at line 70 of file glue_quotient_polynomial_rational.cpp.

References square().

                                                               {
    return square (arg_1);
  }
static iterator<generic> mmx::GLUE_8 ( const series< generic > &  arg_1) [static]

Definition at line 72 of file glue_series_generic.cpp.

References iterate().

                                        {
    return iterate (arg_1);
  }
static vector<integer> mmx::GLUE_8 ( const vector< integer > &  arg_1) [static]

Definition at line 45 of file glue_vector_integer.cpp.

References reverse().

                                        {
    return reverse (arg_1);
  }
static integer mmx::GLUE_8 ( const polynomial< integer > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 65 of file glue_polynomial_integer.cpp.

References arg_2.

                                                              {
    return arg_1[arg_2];
  }
static series<integer> mmx::GLUE_8 ( const polynomial< integer > &  arg_1) [static]

Definition at line 72 of file glue_series_integer.cpp.

References arg_1.

                                            {
    return series<integer > (arg_1);
  }
static vector<int> mmx::GLUE_8 ( const vector< int > &  arg_1) [static]

Definition at line 49 of file glue_vector_int.cpp.

References reverse().

                                    {
    return reverse (arg_1);
  }
static vector<rational> mmx::GLUE_8 ( const vector< rational > &  arg_1) [static]

Definition at line 47 of file glue_vector_rational.cpp.

References reverse().

                                         {
    return reverse (arg_1);
  }
static series<mmx_modular(integer) > mmx::GLUE_8 ( const mmx_modular(integer)&  arg_1) [static]

Definition at line 83 of file glue_series_modular_integer.cpp.

References arg_1.

                                             {
    return series<mmx_modular(integer) > (arg_1);
  }
static iterator<generic> mmx::GLUE_8 ( const series< rational > &  arg_1) [static]

Definition at line 77 of file glue_series_rational.cpp.

References iterate().

                                         {
    return as<iterator<generic> > (iterate (arg_1));
  }
static int mmx::GLUE_8 ( const matrix< generic > &  arg_1) [static]

Definition at line 107 of file glue_matrix_generic.cpp.

References cols().

                                        {
    return cols (arg_1);
  }
static polynomial<complex<rational> > mmx::GLUE_80 ( const polynomial< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 429 of file glue_polynomial_rational.cpp.

References arg_1, and arg_2.

                                                                                        {
    return arg_1 / arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_80 ( const complex< rational > &  arg_1,
const int &  arg_2 
) [static]
static vector<complex<rational> > mmx::GLUE_80 ( const vector< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 407 of file glue_vector_rational.cpp.

References arg_1, and arg_2.

                                                                                    {
    return arg_1 / arg_2;
  }
static complex<rational> mmx::GLUE_80 ( const series< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 437 of file glue_series_rational.cpp.

References arg_1, and arg_2.

                                                                      {
    return arg_1[arg_2];
  }
static matrix<complex<rational> > mmx::GLUE_81 ( const vector< complex< rational > > &  arg_1) [static]
static polynomial<complex<rational> > mmx::GLUE_81 ( const polynomial< complex< rational > > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 434 of file glue_polynomial_rational.cpp.

References arg_1, and arg_2.

                                                                                                     {
    return arg_1 / arg_2;
  }
static polynomial<complex<rational> > mmx::GLUE_81 ( const series< complex< rational > > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 442 of file glue_series_rational.cpp.

References arg_1, and range().

                                                                                        {
    return range (arg_1, arg_2, arg_3);
  }
static matrix<complex<rational> > mmx::GLUE_82 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 479 of file glue_matrix_rational.cpp.

References arg_1, and hankel_matrix().

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                    {
    return hankel_matrix (arg_1);
  }
static polynomial<complex<rational> > mmx::GLUE_82 ( const polynomial< complex< rational > > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 439 of file glue_polynomial_rational.cpp.

References arg_1, arg_2, and quo().

                                                                                                     {
    return quo (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_82 ( const series< complex< rational > > &  arg_1) [static]

Definition at line 447 of file glue_series_rational.cpp.

References arg_1.

                                                    {
    return -arg_1;
  }
static matrix<complex<rational> > mmx::GLUE_83 ( const vector< complex< rational > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]
static polynomial<complex<rational> > mmx::GLUE_83 ( const polynomial< complex< rational > > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 444 of file glue_polynomial_rational.cpp.

References arg_1, arg_2, and rem().

                                                                                                     {
    return rem (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_83 ( const series< complex< rational > > &  arg_1) [static]

Definition at line 452 of file glue_series_rational.cpp.

References arg_1, and square().

                                                    {
    return square (arg_1);
  }
static series<complex<rational> > mmx::GLUE_84 ( const series< complex< rational > > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 457 of file glue_series_rational.cpp.

References arg_1, and arg_2.

                                                                                             {
    return arg_1 + arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_84 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 489 of file glue_matrix_rational.cpp.

References arg_1, and vandermonde().

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                    {
    return vandermonde (arg_1);
  }
static bool mmx::GLUE_84 ( const polynomial< complex< rational > > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 449 of file glue_polynomial_rational.cpp.

References arg_1, arg_2, and divides().

                                                                                                     {
    return divides (arg_1, arg_2);
  }
static matrix<complex<rational> > mmx::GLUE_85 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 494 of file glue_matrix_rational.cpp.

References arg_1.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                    {
    return -arg_1;
  }
static polynomial<complex<rational> > mmx::GLUE_85 ( const polynomial< complex< rational > > &  arg_1,
const polynomial< complex< rational > > &  arg_2,
const int &  arg_3 
) [static]

Definition at line 454 of file glue_polynomial_rational.cpp.

References arg_1, arg_2, and subresultant().

                                                                                                                       {
    return subresultant (arg_1, arg_2, arg_3);
  }
static series<complex<rational> > mmx::GLUE_85 ( const series< complex< rational > > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 462 of file glue_series_rational.cpp.

References arg_1, and arg_2.

                                                                                             {
    return arg_1 - arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_86 ( const matrix< complex< rational > > &  arg_1) [static]

Definition at line 499 of file glue_matrix_rational.cpp.

References arg_1, and square().

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                    {
    return square (arg_1);
  }
static vector<generic> mmx::GLUE_86 ( const polynomial< complex< rational > > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 459 of file glue_polynomial_rational.cpp.

References arg_1, arg_2, and wrap_subresultants().

                                                                                                     {
    return wrap_subresultants (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_86 ( const series< complex< rational > > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 467 of file glue_series_rational.cpp.

References arg_1, and arg_2.

                                                                                             {
    return arg_1 * arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_87 ( const matrix< complex< rational > > &  arg_1,
const matrix< complex< rational > > &  arg_2 
) [static]

Definition at line 504 of file glue_matrix_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                             {
    return arg_1 + arg_2;
  }
static complex<rational> mmx::GLUE_87 ( const polynomial< complex< rational > > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 464 of file glue_polynomial_rational.cpp.

References arg_1, arg_2, and resultant().

                                                                                                     {
    return resultant (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_87 ( const complex< rational > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 472 of file glue_series_rational.cpp.

References arg_2.

                                                                                    {
    return arg_1 + arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_88 ( const matrix< complex< rational > > &  arg_1,
const matrix< complex< rational > > &  arg_2 
) [static]

Definition at line 509 of file glue_matrix_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                             {
    return arg_1 - arg_2;
  }
static series<complex<rational> > mmx::GLUE_88 ( const series< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 477 of file glue_series_rational.cpp.

References arg_1, and arg_2.

                                                                                    {
    return arg_1 + arg_2;
  }
static complex<rational> mmx::GLUE_88 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 469 of file glue_polynomial_rational.cpp.

References arg_1, and discriminant().

                                                        {
    return discriminant (arg_1);
  }
static matrix<complex<rational> > mmx::GLUE_89 ( const matrix< complex< rational > > &  arg_1,
const matrix< complex< rational > > &  arg_2 
) [static]

Definition at line 514 of file glue_matrix_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                             {
    return arg_1 * arg_2;
  }
static polynomial<complex<rational> > mmx::GLUE_89 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 474 of file glue_polynomial_rational.cpp.

References arg_1, and integrate().

                                                        {
    return integrate (arg_1);
  }
static series<complex<rational> > mmx::GLUE_89 ( const complex< rational > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 482 of file glue_series_rational.cpp.

References arg_2.

                                                                                    {
    return arg_1 - arg_2;
  }
static int mmx::GLUE_9 ( const matrix< integer > &  arg_1) [static]

Definition at line 112 of file glue_matrix_integer.cpp.

References N().

                                        {
    return N (arg_1);
  }
static int mmx::GLUE_9 ( const matrix< rational > &  arg_1) [static]

Definition at line 114 of file glue_matrix_rational.cpp.

References rows().

                                         {
    return rows (arg_1);
  }
polynomial_carry_variant_helper< mmx_modular(integer) >::PV mmx::GLUE_9 ( const series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > &  arg_1,
const int &  arg_2,
const int &  arg_3 
)

Definition at line 74 of file glue_p_adic_modular_integer.cpp.

References range().

                                                                                                 {
    return range (arg_1, arg_2, arg_3);
  }
static polynomial<generic> mmx::GLUE_9 ( const polynomial< generic > &  arg_1) [static]

Definition at line 68 of file glue_polynomial_generic.cpp.

References square().

                                            {
    return square (arg_1);
  }
static polynomial<integer> mmx::GLUE_9 ( const polynomial< integer > &  arg_1) [static]

Definition at line 70 of file glue_polynomial_integer.cpp.

References arg_1.

                                            {
    return -arg_1;
  }
static algebraic_real mmx::GLUE_9 ( const algebraic_real &  arg_1) [static]

Definition at line 81 of file glue_algebraic_number.cpp.

References square().

                                       {
    return square (arg_1);
  }
static polynomial<rational> mmx::GLUE_9 ( const polynomial< rational > &  arg_1) [static]

Definition at line 74 of file glue_polynomial_rational.cpp.

References arg_1.

                                             {
    return -arg_1;
  }
static polynomial<series< mmx_modular(integer) , series_carry_variant_helper< mmx_modular(integer) >::SV> > mmx::GLUE_9 ( const polynomial< series< mmx_modular(integer), series_carry_variant_helper< mmx_modular(integer) >::SV > > &  arg_1) [static]

Definition at line 97 of file glue_polynomial_p_adic_modular_integer.cpp.

References arg_1.

                                                                          {
    return -arg_1;
  }
static quotient< polynomial<rational> , polynomial<rational> > mmx::GLUE_9 ( const quotient< polynomial< rational >, polynomial< rational > > &  arg_1,
const quotient< polynomial< rational >, polynomial< rational > > &  arg_2 
) [static]

Definition at line 75 of file glue_quotient_polynomial_rational.cpp.

References arg_2.

                                                                                                                    {
    return arg_1 + arg_2;
  }
static iterator<generic> mmx::GLUE_9 ( const series< integer > &  arg_1) [static]

Definition at line 77 of file glue_series_integer.cpp.

References iterate().

                                        {
    return as<iterator<generic> > (iterate (arg_1));
  }
static series<mmx_modular(integer) > mmx::GLUE_9 ( const polynomial< mmx_modular(integer) > &  arg_1) [static]

Definition at line 88 of file glue_series_modular_integer.cpp.

References arg_1.

                                                          {
    return series<mmx_modular(integer) > (arg_1);
  }
static rational mmx::GLUE_9 ( const series< rational > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 82 of file glue_series_rational.cpp.

References arg_2.

                                                           {
    return arg_1[arg_2];
  }
static int mmx::GLUE_9 ( const permutation &  arg_1) [static]

Definition at line 54 of file glue_permutation.cpp.

References nr_transpositions().

                                    {
    return nr_transpositions (arg_1);
  }
static vector<int> mmx::GLUE_9 ( const vector< int > &  arg_1,
const vector< int > &  arg_2 
) [static]

Definition at line 54 of file glue_vector_int.cpp.

                                                              {
    return append (arg_1, arg_2);
  }
static vector<integer> mmx::GLUE_9 ( const vector< integer > &  arg_1,
const vector< integer > &  arg_2 
) [static]

Definition at line 50 of file glue_vector_integer.cpp.

                                                                      {
    return append (arg_1, arg_2);
  }
static vector<rational> mmx::GLUE_9 ( const vector< rational > &  arg_1,
const vector< rational > &  arg_2 
) [static]

Definition at line 52 of file glue_vector_rational.cpp.

                                                                        {
    return append (arg_1, arg_2);
  }
static generic mmx::GLUE_9 ( const series< generic > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 77 of file glue_series_generic.cpp.

References arg_2.

                                                          {
    return arg_1[arg_2];
  }
static generic mmx::GLUE_9 ( const matrix< generic > &  arg_1,
const int &  arg_2,
const int &  arg_3 
) [static]

Definition at line 112 of file glue_matrix_generic.cpp.

References arg_1.

                                                                            {
    return arg_1 (arg_2, arg_3);
  }
static polynomial<complex<rational> > mmx::GLUE_90 ( const polynomial< complex< rational > > &  arg_1,
const polynomial< complex< rational > > &  arg_2 
) [static]

Definition at line 479 of file glue_polynomial_rational.cpp.

References arg_1, arg_2, and compose().

                                                                                                     {
    return compose (arg_1, arg_2);
  }
static matrix<complex<rational> > mmx::GLUE_90 ( const complex< rational > &  arg_1,
const matrix< complex< rational > > &  arg_2 
) [static]

Definition at line 519 of file glue_matrix_rational.cpp.

References arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                    {
    return arg_1 + arg_2;
  }
static series<complex<rational> > mmx::GLUE_90 ( const series< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 487 of file glue_series_rational.cpp.

References arg_1, and arg_2.

                                                                                    {
    return arg_1 - arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_91 ( const matrix< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 524 of file glue_matrix_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                    {
    return arg_1 + arg_2;
  }
static polynomial<complex<rational> > mmx::GLUE_91 ( const polynomial< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 484 of file glue_polynomial_rational.cpp.

References arg_1, and q_difference().

                                                                                        {
    return q_difference (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_91 ( const complex< rational > &  arg_1,
const series< complex< rational > > &  arg_2 
) [static]

Definition at line 492 of file glue_series_rational.cpp.

References arg_2.

                                                                                    {
    return arg_1 * arg_2;
  }
static polynomial<complex<rational> > mmx::GLUE_92 ( const polynomial< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 489 of file glue_polynomial_rational.cpp.

References arg_1, and dilate().

                                                                          {
    return dilate (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_92 ( const series< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 497 of file glue_series_rational.cpp.

References arg_1, and arg_2.

                                                                                    {
    return arg_1 * arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_92 ( const complex< rational > &  arg_1,
const matrix< complex< rational > > &  arg_2 
) [static]

Definition at line 529 of file glue_matrix_rational.cpp.

References arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                    {
    return arg_1 - arg_2;
  }
static matrix<complex<rational> > mmx::GLUE_93 ( const matrix< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 534 of file glue_matrix_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                    {
    return arg_1 - arg_2;
  }
static polynomial<complex<rational> > mmx::GLUE_93 ( const vector< complex< rational > > &  arg_1) [static]

Definition at line 494 of file glue_polynomial_rational.cpp.

References annulator(), and arg_1.

                                                    {
    return annulator (arg_1);
  }
static series<complex<rational> > mmx::GLUE_93 ( const series< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 502 of file glue_series_rational.cpp.

References arg_1.

                                                                      {
    return binpow (arg_1, arg_2);
  }
static series<complex<rational> > mmx::GLUE_94 ( const series< complex< rational > > &  arg_1,
const integer &  arg_2 
) [static]

Definition at line 507 of file glue_series_rational.cpp.

References arg_1.

                                                                          {
    return binpow (arg_1, arg_2);
  }
static matrix<complex<rational> > mmx::GLUE_94 ( const complex< rational > &  arg_1,
const matrix< complex< rational > > &  arg_2 
) [static]

Definition at line 539 of file glue_matrix_rational.cpp.

References arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                    {
    return arg_1 * arg_2;
  }
static polynomial<complex<rational> > mmx::GLUE_94 ( const vector< complex< rational > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 499 of file glue_polynomial_rational.cpp.

References arg_1, arg_2, and interpolate().

                                                                                             {
    return interpolate (arg_1, arg_2);
  }
static matrix<complex<rational> > mmx::GLUE_95 ( const matrix< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 544 of file glue_matrix_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                    {
    return arg_1 * arg_2;
  }
static series<complex<rational> > mmx::GLUE_95 ( const series< complex< rational > > &  arg_1) [static]

Definition at line 512 of file glue_series_rational.cpp.

References arg_1, and derive().

                                                    {
    return derive (arg_1);
  }
static polynomial<complex<rational> > mmx::GLUE_95 ( const polynomial< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 504 of file glue_polynomial_rational.cpp.

References arg_1, and shift().

                                                                                        {
    return shift (arg_1, arg_2);
  }
static vector<complex<rational> > mmx::GLUE_96 ( const matrix< complex< rational > > &  arg_1,
const vector< complex< rational > > &  arg_2 
) [static]

Definition at line 549 of file glue_matrix_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                             {
    return arg_1 * arg_2;
  }
static series<complex<rational> > mmx::GLUE_96 ( const series< complex< rational > > &  arg_1) [static]

Definition at line 517 of file glue_series_rational.cpp.

References arg_1, and xderive().

                                                    {
    return xderive (arg_1);
  }
static polynomial<complex<rational> > mmx::GLUE_96 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 509 of file glue_polynomial_rational.cpp.

References arg_1, and graeffe().

                                                        {
    return graeffe (arg_1);
  }
static vector<complex<rational> > mmx::GLUE_97 ( const vector< complex< rational > > &  arg_1,
const matrix< complex< rational > > &  arg_2 
) [static]

Definition at line 554 of file glue_matrix_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                             {
    return arg_1 * arg_2;
  }
static polynomial<complex<rational> > mmx::GLUE_97 ( const polynomial< integer > &  arg_1) [static]

Definition at line 514 of file glue_polynomial_rational.cpp.

References arg_1.

                                             {
    return as<polynomial<complex<rational> > > (arg_1);
  }
static series<complex<rational> > mmx::GLUE_97 ( const series< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 522 of file glue_series_rational.cpp.

References arg_1, and dilate().

                                                                      {
    return dilate (arg_1, arg_2);
  }
static polynomial<complex<rational> > mmx::GLUE_98 ( const polynomial< rational > &  arg_1) [static]

Definition at line 519 of file glue_polynomial_rational.cpp.

References arg_1.

                                              {
    return as<polynomial<complex<rational> > > (arg_1);
  }
static matrix<complex<rational> > mmx::GLUE_98 ( const complex< rational > &  arg_1,
const matrix< complex< rational > > &  arg_2 
) [static]

Definition at line 559 of file glue_matrix_rational.cpp.

References arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                    {
    return arg_1 / arg_2;
  }
static series<complex<rational> > mmx::GLUE_98 ( const series< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 527 of file glue_series_rational.cpp.

References arg_1, and lshiftz().

                                                                      {
    return lshiftz (arg_1, arg_2);
  }
static matrix<complex<rational> > mmx::GLUE_99 ( const matrix< complex< rational > > &  arg_1,
const complex< rational > &  arg_2 
) [static]

Definition at line 564 of file glue_matrix_rational.cpp.

References arg_1, and arg_2.

Referenced by glue_matrix_rational(), glue_polynomial_rational(), and glue_series_rational().

                                                                                    {
    return arg_1 / arg_2;
  }
static series<complex<rational> > mmx::GLUE_99 ( const series< complex< rational > > &  arg_1,
const int &  arg_2 
) [static]

Definition at line 532 of file glue_series_rational.cpp.

References arg_1, and rshiftz().

                                                                      {
    return rshiftz (arg_1, arg_2);
  }
static polynomial<generic> mmx::GLUE_99 ( const polynomial< complex< rational > > &  arg_1) [static]

Definition at line 524 of file glue_polynomial_rational.cpp.

References arg_1.

                                                        {
    return as<polynomial<generic> > (arg_1);
  }
void glue_algebraic_generic ( )

Definition at line 78 of file glue_algebraic_generic.cpp.

References GLUE_1(), GLUE_10(), GLUE_2(), GLUE_3(), GLUE_4(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                            {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_polynomial_generic"));
    define_type<algebraic<generic> > (gen (lit ("Algebraic"), lit ("Generic")));
    define ("algebraic", GLUE_1);
    define ("algebraic", GLUE_2);
    define ("annihilator", GLUE_3);
    define ("normalize", GLUE_4);
    define ("-", GLUE_5);
    define ("square", GLUE_6);
    define ("+", GLUE_7);
    define ("-", GLUE_8);
    define ("*", GLUE_9);
    define ("/", GLUE_10);
  }
void glue_algebraic_number ( )

Definition at line 336 of file glue_algebraic_number.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_38(), GLUE_39(), GLUE_4(), GLUE_40(), GLUE_41(), GLUE_42(), GLUE_43(), GLUE_44(), GLUE_45(), GLUE_46(), GLUE_47(), GLUE_48(), GLUE_49(), GLUE_5(), GLUE_50(), GLUE_51(), GLUE_52(), GLUE_53(), GLUE_54(), GLUE_55(), GLUE_56(), GLUE_57(), GLUE_58(), GLUE_59(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                           {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_ball_floating"));
    call_glue (string ("glue_polynomial_rational"));
    call_glue (string ("glue_algebraic_generic"));
    define_type<algebraic_real > (lit ("Algebraic_real"));
    define ("algebraic", GLUE_1);
    define ("algebraic", GLUE_2);
    define_converter ("upgrade", GLUE_3, PENALTY_INCLUSION);
    define_converter ("upgrade", GLUE_4, PENALTY_INCLUSION);
    define_converter ("upgrade", GLUE_5, PENALTY_INCLUSION);
    define ("annihilator", GLUE_6);
    define ("normalize", GLUE_7);
    define ("-", GLUE_8);
    define ("square", GLUE_9);
    define ("+", GLUE_10);
    define ("-", GLUE_11);
    define ("*", GLUE_12);
    define ("/", GLUE_13);
    define ("+", GLUE_14);
    define ("+", GLUE_15);
    define ("-", GLUE_16);
    define ("-", GLUE_17);
    define ("*", GLUE_18);
    define ("*", GLUE_19);
    define ("/", GLUE_20);
    define ("/", GLUE_21);
    define ("sqrt", GLUE_22);
    define ("root", GLUE_23);
    define ("sign", GLUE_24);
    define ("<", GLUE_25);
    define ("<=", GLUE_26);
    define (">", GLUE_27);
    define (">=", GLUE_28);
    define_type<algebraic_number > (lit ("Algebraic_number"));
    define ("algebraic", GLUE_29);
    define ("algebraic", GLUE_30);
    define_converter ("upgrade", GLUE_31, PENALTY_INCLUSION);
    define_converter ("upgrade", GLUE_32, PENALTY_INCLUSION);
    define_converter ("upgrade", GLUE_33, PENALTY_INCLUSION);
    define_converter ("upgrade", GLUE_34, PENALTY_INCLUSION);
    define ("annihilator", GLUE_35);
    define ("normalize", GLUE_36);
    define ("-", GLUE_37);
    define ("square", GLUE_38);
    define ("+", GLUE_39);
    define ("-", GLUE_40);
    define ("*", GLUE_41);
    define ("/", GLUE_42);
    define ("+", GLUE_43);
    define ("+", GLUE_44);
    define ("-", GLUE_45);
    define ("-", GLUE_46);
    define ("*", GLUE_47);
    define ("*", GLUE_48);
    define ("/", GLUE_49);
    define ("/", GLUE_50);
    define ("sqrt", GLUE_51);
    define ("root", GLUE_52);
    define ("complex", GLUE_53);
    define ("abs", GLUE_54);
    define ("Re", GLUE_55);
    define ("Im", GLUE_56);
    define ("conj", GLUE_57);
    define ("times_i", GLUE_58);
    define ("over_i", GLUE_59);
  }
void mmx::glue_algebramix ( )

Definition at line 32 of file glue_algebramix.cpp.

References glue_algebraic_generic(), glue_algebraic_number(), glue_matrix_generic(), glue_matrix_integer(), glue_matrix_modular_integer(), glue_matrix_rational(), glue_p_adic_modular_integer(), glue_p_expansion_modular_integer(), glue_permutation(), glue_polynomial_generic(), glue_polynomial_integer(), glue_polynomial_modular_integer(), glue_polynomial_p_adic_modular_integer(), glue_polynomial_rational(), glue_quotient_generic(), glue_quotient_polynomial_rational(), glue_series_generic(), glue_series_integer(), glue_series_modular_integer(), glue_series_rational(), glue_vector_int(), glue_vector_integer(), glue_vector_modular_integer(), and glue_vector_rational().

                     {
    static bool done = false;
    if (done) return;
    done = true;
    register_glue (string ("glue_algebraic_generic"), (& (glue_algebraic_generic)));
    register_glue (string ("glue_algebraic_number"), (& (glue_algebraic_number)));
    register_glue (string ("glue_matrix_generic"), (& (glue_matrix_generic)));
    register_glue (string ("glue_matrix_integer"), (& (glue_matrix_integer)));
    register_glue (string ("glue_matrix_modular_integer"), (& (glue_matrix_modular_integer)));
    register_glue (string ("glue_matrix_rational"), (& (glue_matrix_rational)));
    register_glue (string ("glue_p_adic_modular_integer"), (& (glue_p_adic_modular_integer)));
    register_glue (string ("glue_p_expansion_modular_integer"), (& (glue_p_expansion_modular_integer)));
    register_glue (string ("glue_permutation"), (& (glue_permutation)));
    register_glue (string ("glue_polynomial_generic"), (& (glue_polynomial_generic)));
    register_glue (string ("glue_polynomial_integer"), (& (glue_polynomial_integer)));
    register_glue (string ("glue_polynomial_modular_integer"), (& (glue_polynomial_modular_integer)));
    register_glue (string ("glue_polynomial_p_adic_modular_integer"), (& (glue_polynomial_p_adic_modular_integer)));
    register_glue (string ("glue_polynomial_rational"), (& (glue_polynomial_rational)));
    register_glue (string ("glue_quotient_generic"), (& (glue_quotient_generic)));
    register_glue (string ("glue_quotient_polynomial_rational"), (& (glue_quotient_polynomial_rational)));
    register_glue (string ("glue_series_generic"), (& (glue_series_generic)));
    register_glue (string ("glue_series_integer"), (& (glue_series_integer)));
    register_glue (string ("glue_series_modular_integer"), (& (glue_series_modular_integer)));
    register_glue (string ("glue_series_rational"), (& (glue_series_rational)));
    register_glue (string ("glue_vector_int"), (& (glue_vector_int)));
    register_glue (string ("glue_vector_integer"), (& (glue_vector_integer)));
    register_glue (string ("glue_vector_modular_integer"), (& (glue_vector_modular_integer)));
    register_glue (string ("glue_vector_rational"), (& (glue_vector_rational)));
    register_glue (string ("glue_algebramix"), (& (glue_algebramix)));
    dl_link ("numerix");
    glue_algebraic_generic ();
    glue_algebraic_number ();
    glue_matrix_generic ();
    glue_matrix_integer ();
    glue_matrix_modular_integer ();
    glue_matrix_rational ();
    glue_p_adic_modular_integer ();
    glue_p_expansion_modular_integer ();
    glue_permutation ();
    glue_polynomial_generic ();
    glue_polynomial_integer ();
    glue_polynomial_modular_integer ();
    glue_polynomial_p_adic_modular_integer ();
    glue_polynomial_rational ();
    glue_quotient_generic ();
    glue_quotient_polynomial_rational ();
    glue_series_generic ();
    glue_series_integer ();
    glue_series_modular_integer ();
    glue_series_rational ();
    glue_vector_int ();
    glue_vector_integer ();
    glue_vector_modular_integer ();
    glue_vector_rational ();
  }
void glue_matrix_generic ( )

Definition at line 292 of file glue_matrix_generic.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_38(), GLUE_39(), GLUE_4(), GLUE_40(), GLUE_41(), GLUE_42(), GLUE_43(), GLUE_44(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                         {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_vector_generic"));
    call_glue (string ("glue_vector_int"));
    define_constructor<int > (GLUE_1);
    define_type<row_tuple<generic> > (gen (lit ("Row"), lit ("Generic")));
    define_type<matrix<generic> > (gen (lit ("Matrix"), lit ("Generic")));
    define ("(.)", GLUE_2);
    define ("matrix", GLUE_3);
    define ("matrix", GLUE_4);
    define ("[]", GLUE_5);
    define ("#", GLUE_6);
    define ("rows", GLUE_7);
    define ("columns", GLUE_8);
    define (".[]", GLUE_9);
    define (".[]", GLUE_10);
    define (".[]", GLUE_11);
    define ("row", GLUE_12);
    define ("column", GLUE_13);
    define ("transpose", GLUE_14);
    define ("horizontal_join", GLUE_15);
    define ("vertical_join", GLUE_16);
    define ("fill_matrix", GLUE_17);
    define ("jordan_matrix", GLUE_18);
    define ("toeplitz_matrix", GLUE_19);
    define ("hankel_matrix", GLUE_20);
    define ("tensor_matrix", GLUE_21);
    define ("vandermonde", GLUE_22);
    define ("-", GLUE_23);
    define ("square", GLUE_24);
    define ("+", GLUE_25);
    define ("-", GLUE_26);
    define ("*", GLUE_27);
    define ("*", GLUE_28);
    define ("*", GLUE_29);
    define ("krylov", GLUE_30);
    define ("det", GLUE_31);
    define ("row_echelon", GLUE_32);
    define ("column_echelon", GLUE_33);
    define ("row_reduced_echelon", GLUE_34);
    define ("column_reduced_echelon", GLUE_35);
    define ("row_reduced_echelon_with_transform", GLUE_36);
    define ("column_reduced_echelon_with_transform", GLUE_37);
    define ("column_reduced_echelon_with_permutation", GLUE_38);
    define ("ker", GLUE_39);
    define ("im", GLUE_40);
    define ("rank", GLUE_41);
    define ("invert", GLUE_42);
    define ("derive", GLUE_43);
    define ("integrate", GLUE_44);
  }
void glue_matrix_integer ( )

Definition at line 272 of file glue_matrix_integer.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_38(), GLUE_39(), GLUE_4(), GLUE_40(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                         {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_vector_integer"));
    call_glue (string ("glue_matrix_generic"));
    define_converter (":>", GLUE_1, PENALTY_INCLUSION);
    define_converter (":>", GLUE_2, PENALTY_CAST);
    define ("^", GLUE_3);
    define_type<row_tuple<integer> > (gen (lit ("Row"), lit ("Integer")));
    define_type<matrix<integer> > (gen (lit ("Matrix"), lit ("Integer")));
    define ("identity_matrix", GLUE_4);
    define ("(.)", GLUE_5);
    define ("matrix", GLUE_6);
    define ("matrix", GLUE_7);
    define ("[]", GLUE_8);
    define ("#", GLUE_9);
    define ("rows", GLUE_10);
    define ("columns", GLUE_11);
    define (".[]", GLUE_12);
    define (".[]", GLUE_13);
    define (".[]", GLUE_14);
    define ("row", GLUE_15);
    define ("column", GLUE_16);
    define ("transpose", GLUE_17);
    define ("horizontal_join", GLUE_18);
    define ("vertical_join", GLUE_19);
    define ("fill_matrix", GLUE_20);
    define ("jordan_matrix", GLUE_21);
    define ("toeplitz_matrix", GLUE_22);
    define ("hankel_matrix", GLUE_23);
    define ("tensor_matrix", GLUE_24);
    define ("vandermonde", GLUE_25);
    define ("-", GLUE_26);
    define ("square", GLUE_27);
    define ("+", GLUE_28);
    define ("-", GLUE_29);
    define ("*", GLUE_30);
    define ("+", GLUE_31);
    define ("+", GLUE_32);
    define ("-", GLUE_33);
    define ("-", GLUE_34);
    define ("*", GLUE_35);
    define ("*", GLUE_36);
    define ("*", GLUE_37);
    define ("*", GLUE_38);
    define_converter (":>", GLUE_39, PENALTY_PROMOTE_GENERIC);
    define_converter (":>", GLUE_40, PENALTY_PROMOTE_GENERIC);
  }
void mmx::glue_matrix_modular_integer ( )

Referenced by glue_algebramix().

void glue_matrix_rational ( )

Definition at line 634 of file glue_matrix_rational.cpp.

References GLUE_1(), GLUE_10(), GLUE_100(), GLUE_101(), GLUE_102(), GLUE_103(), GLUE_104(), GLUE_105(), GLUE_106(), GLUE_107(), GLUE_108(), GLUE_109(), GLUE_11(), GLUE_110(), GLUE_111(), GLUE_112(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_38(), GLUE_39(), GLUE_4(), GLUE_40(), GLUE_41(), GLUE_42(), GLUE_43(), GLUE_44(), GLUE_45(), GLUE_46(), GLUE_47(), GLUE_48(), GLUE_49(), GLUE_5(), GLUE_50(), GLUE_51(), GLUE_52(), GLUE_53(), GLUE_54(), GLUE_55(), GLUE_56(), GLUE_57(), GLUE_58(), GLUE_59(), GLUE_6(), GLUE_60(), GLUE_61(), GLUE_62(), GLUE_63(), GLUE_64(), GLUE_65(), GLUE_66(), GLUE_67(), GLUE_68(), GLUE_69(), GLUE_7(), GLUE_70(), GLUE_71(), GLUE_72(), GLUE_73(), GLUE_74(), GLUE_75(), GLUE_76(), GLUE_77(), GLUE_78(), GLUE_79(), GLUE_8(), GLUE_80(), GLUE_81(), GLUE_82(), GLUE_83(), GLUE_84(), GLUE_85(), GLUE_86(), GLUE_87(), GLUE_88(), GLUE_89(), GLUE_9(), GLUE_90(), GLUE_91(), GLUE_92(), GLUE_93(), GLUE_94(), GLUE_95(), GLUE_96(), GLUE_97(), GLUE_98(), and GLUE_99().

Referenced by glue_algebramix().

                          {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_vector_rational"));
    call_glue (string ("glue_matrix_integer"));
    define_converter (":>", GLUE_1, PENALTY_CAST);
    define_converter (":>", GLUE_2, PENALTY_CAST);
    define_type<row_tuple<rational> > (gen (lit ("Row"), lit ("Rational")));
    define_type<row_tuple<complex<rational> > > (gen (lit ("Row"), gen (lit ("Complex"), lit ("Rational"))));
    define_type<matrix<rational> > (gen (lit ("Matrix"), lit ("Rational")));
    define_type<matrix<complex<rational> > > (gen (lit ("Matrix"), gen (lit ("Complex"), lit ("Rational"))));
    define ("hilbert_matrix", GLUE_3);
    define ("(.)", GLUE_4);
    define ("matrix", GLUE_5);
    define ("matrix", GLUE_6);
    define ("[]", GLUE_7);
    define ("#", GLUE_8);
    define ("rows", GLUE_9);
    define ("columns", GLUE_10);
    define (".[]", GLUE_11);
    define (".[]", GLUE_12);
    define (".[]", GLUE_13);
    define ("row", GLUE_14);
    define ("column", GLUE_15);
    define ("transpose", GLUE_16);
    define ("horizontal_join", GLUE_17);
    define ("vertical_join", GLUE_18);
    define ("(.)", GLUE_19);
    define ("matrix", GLUE_20);
    define ("matrix", GLUE_21);
    define ("[]", GLUE_22);
    define ("#", GLUE_23);
    define ("rows", GLUE_24);
    define ("columns", GLUE_25);
    define (".[]", GLUE_26);
    define (".[]", GLUE_27);
    define (".[]", GLUE_28);
    define ("row", GLUE_29);
    define ("column", GLUE_30);
    define ("transpose", GLUE_31);
    define ("horizontal_join", GLUE_32);
    define ("vertical_join", GLUE_33);
    define ("fill_matrix", GLUE_34);
    define ("jordan_matrix", GLUE_35);
    define ("toeplitz_matrix", GLUE_36);
    define ("hankel_matrix", GLUE_37);
    define ("tensor_matrix", GLUE_38);
    define ("vandermonde", GLUE_39);
    define ("-", GLUE_40);
    define ("square", GLUE_41);
    define ("+", GLUE_42);
    define ("-", GLUE_43);
    define ("*", GLUE_44);
    define ("+", GLUE_45);
    define ("+", GLUE_46);
    define ("-", GLUE_47);
    define ("-", GLUE_48);
    define ("*", GLUE_49);
    define ("*", GLUE_50);
    define ("*", GLUE_51);
    define ("*", GLUE_52);
    define ("/", GLUE_53);
    define ("/", GLUE_54);
    define ("krylov", GLUE_55);
    define ("det", GLUE_56);
    define ("row_echelon", GLUE_57);
    define ("column_echelon", GLUE_58);
    define ("row_reduced_echelon", GLUE_59);
    define ("column_reduced_echelon", GLUE_60);
    define ("row_reduced_echelon_with_transform", GLUE_61);
    define ("column_reduced_echelon_with_transform", GLUE_62);
    define ("column_reduced_echelon_with_permutation", GLUE_63);
    define ("ker", GLUE_64);
    define ("im", GLUE_65);
    define ("rank", GLUE_66);
    define ("invert", GLUE_67);
    define ("abs", GLUE_68);
    define_converter (":>", GLUE_69, PENALTY_INCLUSION);
    define_converter (":>", GLUE_70, PENALTY_INCLUSION);
    define_converter (":>", GLUE_71, PENALTY_INCLUSION);
    define_converter (":>", GLUE_72, PENALTY_INCLUSION);
    define_converter (":>", GLUE_73, PENALTY_PROMOTE_GENERIC);
    define_converter (":>", GLUE_74, PENALTY_PROMOTE_GENERIC);
    define_converter (":>", GLUE_75, PENALTY_INCLUSION);
    define_converter (":>", GLUE_76, PENALTY_INCLUSION);
    define_converter (":>", GLUE_77, PENALTY_PROMOTE_GENERIC);
    define_converter (":>", GLUE_78, PENALTY_PROMOTE_GENERIC);
    define ("fill_matrix", GLUE_79);
    define ("jordan_matrix", GLUE_80);
    define ("toeplitz_matrix", GLUE_81);
    define ("hankel_matrix", GLUE_82);
    define ("tensor_matrix", GLUE_83);
    define ("vandermonde", GLUE_84);
    define ("-", GLUE_85);
    define ("square", GLUE_86);
    define ("+", GLUE_87);
    define ("-", GLUE_88);
    define ("*", GLUE_89);
    define ("+", GLUE_90);
    define ("+", GLUE_91);
    define ("-", GLUE_92);
    define ("-", GLUE_93);
    define ("*", GLUE_94);
    define ("*", GLUE_95);
    define ("*", GLUE_96);
    define ("*", GLUE_97);
    define ("/", GLUE_98);
    define ("/", GLUE_99);
    define ("krylov", GLUE_100);
    define ("det", GLUE_101);
    define ("row_echelon", GLUE_102);
    define ("column_echelon", GLUE_103);
    define ("row_reduced_echelon", GLUE_104);
    define ("column_reduced_echelon", GLUE_105);
    define ("row_reduced_echelon_with_transform", GLUE_106);
    define ("column_reduced_echelon_with_transform", GLUE_107);
    define ("column_reduced_echelon_with_permutation", GLUE_108);
    define ("ker", GLUE_109);
    define ("im", GLUE_110);
    define ("rank", GLUE_111);
    define ("invert", GLUE_112);
  }
void glue_p_adic_modular_integer ( )

Definition at line 174 of file glue_p_adic_modular_integer.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_3(), GLUE_4(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                                 {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_integer"));
    call_glue (string ("glue_modular_integer"));
    call_glue (string ("glue_p_expansion_modular_integer"));
    define_type<simple_p_adic(mmx_modular(integer) ) > (gen (lit ("P_adic"), gen (lit ("Modular"), lit ("Integer"))));
    define ("set_variable_name", GLUE_1);
    define ("set_output_order", GLUE_2);
    define ("set_cancel_order", GLUE_3);
    define ("set_formula_output", GLUE_4);
    define ("p_adic", GLUE_5);
    define_converter ("upgrade", GLUE_6, PENALTY_INCLUSION);
    define_converter (":>", GLUE_7, PENALTY_CAST);
    define (".[]", GLUE_8);
    define (".[]", GLUE_9);
    define ("-", GLUE_10);
    define ("square", GLUE_11);
    define ("+", GLUE_12);
    define ("-", GLUE_13);
    define ("*", GLUE_14);
    define ("+", GLUE_15);
    define ("+", GLUE_16);
    define ("-", GLUE_17);
    define ("-", GLUE_18);
    define ("*", GLUE_19);
    define ("*", GLUE_20);
    define ("^", GLUE_21);
    define ("/", GLUE_22);
    define ("/", GLUE_23);
    define ("/", GLUE_24);
    define ("gcd", GLUE_25);
    define ("lcm", GLUE_26);
    define ("separable_root", GLUE_27);
    define ("pth_root", GLUE_28);
  }
void glue_p_expansion_modular_integer ( )

Definition at line 70 of file glue_p_expansion_modular_integer.cpp.

References GLUE_1(), GLUE_2(), GLUE_3(), GLUE_4(), GLUE_5(), GLUE_6(), GLUE_7(), and GLUE_8().

Referenced by glue_algebramix().

                                      {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_vector_generic"));
    call_glue (string ("glue_modular_integer"));
    call_glue (string ("glue_vector_modular_integer"));
    define_type<simple_p_expansion(mmx_modular(integer) ) > (gen (lit ("P_expansion"), gen (lit ("Modular"), lit ("Integer"))));
    define ("p_expansion", GLUE_1);
    define ("set_variable_name", GLUE_2);
    define_converter (":>", GLUE_3, PENALTY_CAST);
    define ("#", GLUE_4);
    define ("deg", GLUE_5);
    define (".[]", GLUE_6);
    define ("integer", GLUE_7);
    define ("p_expansion", GLUE_8);
  }
void glue_permutation ( )

Definition at line 69 of file glue_permutation.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_2(), GLUE_3(), GLUE_4(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                      {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_int"));
    call_glue (string ("glue_vector_int"));
    define_type<permutation > (lit ("Permutation"));
    define ("permutation", GLUE_1);
    define ("permutation", GLUE_2);
    define ("transposition", GLUE_3);
    define ("cycle", GLUE_4);
    define ("as_vector", GLUE_5);
    define_converter (":>", GLUE_6, PENALTY_CAST);
    define ("#", GLUE_7);
    define (".()", GLUE_8);
    define ("nr_transpositions", GLUE_9);
    define ("*", GLUE_10);
    define ("invert", GLUE_11);
  }
void glue_polynomial_generic ( )

Definition at line 233 of file glue_polynomial_generic.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_38(), GLUE_39(), GLUE_4(), GLUE_40(), GLUE_41(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                             {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_vector_generic"));
    define_type<polynomial<generic> > (gen (lit ("Polynomial"), lit ("Generic")));
    define ("poly", GLUE_1);
    define ("polynomial", GLUE_2);
    define ("set_variable_name", GLUE_3);
    define_converter (":>", GLUE_4, PENALTY_PROMOTE_GENERIC);
    define ("#", GLUE_5);
    define ("deg", GLUE_6);
    define (".[]", GLUE_7);
    define ("-", GLUE_8);
    define ("square", GLUE_9);
    define ("+", GLUE_10);
    define ("-", GLUE_11);
    define ("*", GLUE_12);
    define ("^", GLUE_13);
    define ("<<", GLUE_14);
    define (">>", GLUE_15);
    define ("derive", GLUE_16);
    define ("xderive", GLUE_17);
    define ("eval", GLUE_18);
    define ("eval", GLUE_19);
    define ("evaluate", GLUE_20);
    define ("evaluate", GLUE_21);
    define ("div", GLUE_22);
    define ("quo", GLUE_23);
    define ("rem", GLUE_24);
    define ("divides?", GLUE_25);
    define ("subresultant", GLUE_26);
    define ("subresultants", GLUE_27);
    define ("resultant", GLUE_28);
    define ("discriminant", GLUE_29);
    define ("integrate", GLUE_30);
    define ("@", GLUE_31);
    define ("q_difference", GLUE_32);
    define ("dilate", GLUE_33);
    define ("annulator", GLUE_34);
    define ("interpolate", GLUE_35);
    define ("shift", GLUE_36);
    define ("graeffe", GLUE_37);
    define ("contents", GLUE_38);
    define ("primitive_part", GLUE_39);
    define ("gcd", GLUE_40);
    define ("lcm", GLUE_41);
  }
void glue_polynomial_integer ( )

Definition at line 175 of file glue_polynomial_integer.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_4(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                             {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_vector_integer"));
    call_glue (string ("glue_polynomial_generic"));
    define_type<polynomial<integer> > (gen (lit ("Polynomial"), lit ("Integer")));
    define ("poly", GLUE_1);
    define ("polynomial", GLUE_2);
    define ("set_variable_name", GLUE_3);
    define_converter ("upgrade", GLUE_4, PENALTY_INCLUSION);
    define_converter (":>", GLUE_5, PENALTY_CAST);
    define ("#", GLUE_6);
    define ("deg", GLUE_7);
    define (".[]", GLUE_8);
    define ("-", GLUE_9);
    define ("square", GLUE_10);
    define ("+", GLUE_11);
    define ("-", GLUE_12);
    define ("*", GLUE_13);
    define ("+", GLUE_14);
    define ("+", GLUE_15);
    define ("-", GLUE_16);
    define ("-", GLUE_17);
    define ("*", GLUE_18);
    define ("*", GLUE_19);
    define ("^", GLUE_20);
    define ("<<", GLUE_21);
    define (">>", GLUE_22);
    define ("derive", GLUE_23);
    define ("xderive", GLUE_24);
    define ("eval", GLUE_25);
    define ("eval", GLUE_26);
    define ("evaluate", GLUE_27);
    define ("evaluate", GLUE_28);
    define_converter (":>", GLUE_29, PENALTY_PROMOTE_GENERIC);
  }
void mmx::glue_polynomial_modular_integer ( )

Referenced by glue_algebramix().

void glue_polynomial_p_adic_modular_integer ( )

Definition at line 272 of file glue_polynomial_p_adic_modular_integer.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_38(), GLUE_39(), GLUE_4(), GLUE_40(), GLUE_41(), GLUE_42(), GLUE_43(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                                            {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_vector_generic"));
    call_glue (string ("glue_p_adic_modular_integer"));
    call_glue (string ("glue_polynomial_modular_integer"));
    define_type<polynomial<simple_p_adic(mmx_modular(integer) ) > > (gen (lit ("Polynomial"), gen (lit ("P_adic"), gen (lit ("Modular"), lit ("Integer")))));
    define ("poly", GLUE_1);
    define ("polynomial", GLUE_2);
    define ("set_variable_name", GLUE_3);
    define_converter ("upgrade", GLUE_4, PENALTY_INCLUSION);
    define_converter (":>", GLUE_5, PENALTY_CAST);
    define ("#", GLUE_6);
    define ("deg", GLUE_7);
    define (".[]", GLUE_8);
    define ("-", GLUE_9);
    define ("square", GLUE_10);
    define ("+", GLUE_11);
    define ("-", GLUE_12);
    define ("*", GLUE_13);
    define ("+", GLUE_14);
    define ("+", GLUE_15);
    define ("-", GLUE_16);
    define ("-", GLUE_17);
    define ("*", GLUE_18);
    define ("*", GLUE_19);
    define ("^", GLUE_20);
    define ("<<", GLUE_21);
    define (">>", GLUE_22);
    define ("derive", GLUE_23);
    define ("xderive", GLUE_24);
    define ("eval", GLUE_25);
    define ("evaluate", GLUE_26);
    define ("/", GLUE_27);
    define ("div", GLUE_28);
    define ("quo", GLUE_29);
    define ("rem", GLUE_30);
    define ("divides?", GLUE_31);
    define ("subresultant", GLUE_32);
    define ("subresultants", GLUE_33);
    define ("resultant", GLUE_34);
    define ("discriminant", GLUE_35);
    define ("integrate", GLUE_36);
    define ("@", GLUE_37);
    define ("q_difference", GLUE_38);
    define ("dilate", GLUE_39);
    define ("shift", GLUE_40);
    define ("graeffe", GLUE_41);
    define_converter (":>", GLUE_42, PENALTY_INCLUSION);
    define_converter (":>", GLUE_43, PENALTY_PROMOTE_GENERIC);
  }
void glue_polynomial_rational ( )

Definition at line 529 of file glue_polynomial_rational.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_38(), GLUE_39(), GLUE_4(), GLUE_40(), GLUE_41(), GLUE_42(), GLUE_43(), GLUE_44(), GLUE_45(), GLUE_46(), GLUE_47(), GLUE_48(), GLUE_49(), GLUE_5(), GLUE_50(), GLUE_51(), GLUE_52(), GLUE_53(), GLUE_54(), GLUE_55(), GLUE_56(), GLUE_57(), GLUE_58(), GLUE_59(), GLUE_6(), GLUE_60(), GLUE_61(), GLUE_62(), GLUE_63(), GLUE_64(), GLUE_65(), GLUE_66(), GLUE_67(), GLUE_68(), GLUE_69(), GLUE_7(), GLUE_70(), GLUE_71(), GLUE_72(), GLUE_73(), GLUE_74(), GLUE_75(), GLUE_76(), GLUE_77(), GLUE_78(), GLUE_79(), GLUE_8(), GLUE_80(), GLUE_81(), GLUE_82(), GLUE_83(), GLUE_84(), GLUE_85(), GLUE_86(), GLUE_87(), GLUE_88(), GLUE_89(), GLUE_9(), GLUE_90(), GLUE_91(), GLUE_92(), GLUE_93(), GLUE_94(), GLUE_95(), GLUE_96(), GLUE_97(), GLUE_98(), and GLUE_99().

Referenced by glue_algebramix().

                              {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_vector_rational"));
    call_glue (string ("glue_polynomial_integer"));
    define_type<polynomial<rational> > (gen (lit ("Polynomial"), lit ("Rational")));
    define ("poly", GLUE_1);
    define ("polynomial", GLUE_2);
    define ("set_variable_name", GLUE_3);
    define_converter ("upgrade", GLUE_4, PENALTY_INCLUSION);
    define_converter (":>", GLUE_5, PENALTY_CAST);
    define ("#", GLUE_6);
    define ("deg", GLUE_7);
    define (".[]", GLUE_8);
    define ("-", GLUE_9);
    define ("square", GLUE_10);
    define ("+", GLUE_11);
    define ("-", GLUE_12);
    define ("*", GLUE_13);
    define ("+", GLUE_14);
    define ("+", GLUE_15);
    define ("-", GLUE_16);
    define ("-", GLUE_17);
    define ("*", GLUE_18);
    define ("*", GLUE_19);
    define ("^", GLUE_20);
    define ("<<", GLUE_21);
    define (">>", GLUE_22);
    define ("derive", GLUE_23);
    define ("xderive", GLUE_24);
    define ("eval", GLUE_25);
    define ("eval", GLUE_26);
    define ("evaluate", GLUE_27);
    define ("evaluate", GLUE_28);
    define ("/", GLUE_29);
    define ("div", GLUE_30);
    define ("quo", GLUE_31);
    define ("rem", GLUE_32);
    define ("divides?", GLUE_33);
    define ("subresultant", GLUE_34);
    define ("subresultants", GLUE_35);
    define ("resultant", GLUE_36);
    define ("discriminant", GLUE_37);
    define ("integrate", GLUE_38);
    define ("@", GLUE_39);
    define ("q_difference", GLUE_40);
    define ("dilate", GLUE_41);
    define ("annulator", GLUE_42);
    define ("interpolate", GLUE_43);
    define ("shift", GLUE_44);
    define ("graeffe", GLUE_45);
    define ("contents", GLUE_46);
    define ("primitive_part", GLUE_47);
    define ("gcd", GLUE_48);
    define ("lcm", GLUE_49);
    define_converter (":>", GLUE_50, PENALTY_INCLUSION);
    define_converter (":>", GLUE_51, PENALTY_PROMOTE_GENERIC);
    define_type<polynomial<complex<rational> > > (gen (lit ("Polynomial"), gen (lit ("Complex"), lit ("Rational"))));
    define ("poly", GLUE_52);
    define ("polynomial", GLUE_53);
    define ("set_variable_name", GLUE_54);
    define_converter ("upgrade", GLUE_55, PENALTY_INCLUSION);
    define_converter (":>", GLUE_56, PENALTY_CAST);
    define ("#", GLUE_57);
    define ("deg", GLUE_58);
    define (".[]", GLUE_59);
    define ("-", GLUE_60);
    define ("square", GLUE_61);
    define ("+", GLUE_62);
    define ("-", GLUE_63);
    define ("*", GLUE_64);
    define ("+", GLUE_65);
    define ("+", GLUE_66);
    define ("-", GLUE_67);
    define ("-", GLUE_68);
    define ("*", GLUE_69);
    define ("*", GLUE_70);
    define ("^", GLUE_71);
    define ("<<", GLUE_72);
    define (">>", GLUE_73);
    define ("derive", GLUE_74);
    define ("xderive", GLUE_75);
    define ("eval", GLUE_76);
    define ("eval", GLUE_77);
    define ("evaluate", GLUE_78);
    define ("evaluate", GLUE_79);
    define ("/", GLUE_80);
    define ("div", GLUE_81);
    define ("quo", GLUE_82);
    define ("rem", GLUE_83);
    define ("divides?", GLUE_84);
    define ("subresultant", GLUE_85);
    define ("subresultants", GLUE_86);
    define ("resultant", GLUE_87);
    define ("discriminant", GLUE_88);
    define ("integrate", GLUE_89);
    define ("@", GLUE_90);
    define ("q_difference", GLUE_91);
    define ("dilate", GLUE_92);
    define ("annulator", GLUE_93);
    define ("interpolate", GLUE_94);
    define ("shift", GLUE_95);
    define ("graeffe", GLUE_96);
    define_converter (":>", GLUE_97, PENALTY_INCLUSION);
    define_converter (":>", GLUE_98, PENALTY_INCLUSION);
    define_converter (":>", GLUE_99, PENALTY_PROMOTE_GENERIC);
  }
void glue_quotient_generic ( )

Definition at line 9 of file glue_quotient_generic.cpp.

Referenced by glue_algebramix().

                           {
    static bool done = false;
    if (done) return;
    done = true;
  }
void glue_quotient_polynomial_rational ( )

Definition at line 135 of file glue_quotient_polynomial_rational.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_3(), GLUE_4(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                                       {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_polynomial_rational"));
    define_type<simple_quotient(polynomial<rational> ) > (gen (lit ("Quotient"), gen (lit ("Polynomial"), lit ("Rational"))));
    define ("quotient", GLUE_1);
    define ("quotient", GLUE_2);
    define ("/", GLUE_3);
    define_converter ("upgrade", GLUE_4, PENALTY_INCLUSION);
    define ("numerator", GLUE_5);
    define ("denominator", GLUE_6);
    define ("-", GLUE_7);
    define ("square", GLUE_8);
    define ("+", GLUE_9);
    define ("-", GLUE_10);
    define ("*", GLUE_11);
    define ("/", GLUE_12);
    define ("+", GLUE_13);
    define ("+", GLUE_14);
    define ("-", GLUE_15);
    define ("-", GLUE_16);
    define ("*", GLUE_17);
    define ("*", GLUE_18);
    define ("/", GLUE_19);
    define ("/", GLUE_20);
  }
void glue_series_generic ( )

Definition at line 297 of file glue_series_generic.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_38(), GLUE_39(), GLUE_4(), GLUE_40(), GLUE_41(), GLUE_42(), GLUE_43(), GLUE_44(), GLUE_45(), GLUE_46(), GLUE_47(), GLUE_48(), GLUE_49(), GLUE_5(), GLUE_50(), GLUE_51(), GLUE_52(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                         {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_polynomial_generic"));
    define_constructor<int > (GLUE_1);
    define_type<series<generic> > (gen (lit ("Series"), lit ("Generic")));
    define ("set_variable_name", GLUE_2);
    define ("set_output_order", GLUE_3);
    define ("set_cancel_order", GLUE_4);
    define ("set_formula_output", GLUE_5);
    define ("series", GLUE_6);
    define_converter ("upgrade", GLUE_7, PENALTY_PROMOTE_GENERIC);
    define_converter (":>", GLUE_8, PENALTY_PROMOTE_GENERIC);
    define (".[]", GLUE_9);
    define (".[]", GLUE_10);
    define ("-", GLUE_11);
    define ("square", GLUE_12);
    define ("+", GLUE_13);
    define ("-", GLUE_14);
    define ("*", GLUE_15);
    define ("^", GLUE_16);
    define ("derive", GLUE_17);
    define ("xderive", GLUE_18);
    define ("dilate", GLUE_19);
    define ("<<", GLUE_20);
    define (">>", GLUE_21);
    define ("/", GLUE_22);
    define ("div", GLUE_23);
    define ("divides?", GLUE_24);
    define ("gcd", GLUE_25);
    define ("lcm", GLUE_26);
    define ("integrate", GLUE_27);
    define ("@", GLUE_28);
    define ("reverse", GLUE_29);
    define ("q_difference", GLUE_30);
    define ("shift", GLUE_31);
    define ("shift", GLUE_32);
    define ("^", GLUE_33);
    define ("sqrt", GLUE_34);
    define ("exp", GLUE_35);
    define ("log", GLUE_36);
    define ("cos", GLUE_37);
    define ("sin", GLUE_38);
    define ("tan", GLUE_39);
    define ("arccos", GLUE_40);
    define ("arcsin", GLUE_41);
    define ("arctan", GLUE_42);
    define ("<=", GLUE_43);
    define (">=", GLUE_44);
    define ("<", GLUE_45);
    define (">", GLUE_46);
    define ("fixed_point_series", GLUE_47);
    define ("fixed_point_series", GLUE_48);
    define ("integrate_series", GLUE_49);
    define ("integrate_series", GLUE_50);
    define ("implicit_series", GLUE_51);
    define ("implicit_series", GLUE_52);
  }
void glue_series_integer ( )

Definition at line 212 of file glue_series_integer.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_4(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                         {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_polynomial_integer"));
    call_glue (string ("glue_series_generic"));
    define ("^", GLUE_1);
    define_type<series<integer> > (gen (lit ("Series"), lit ("Integer")));
    define ("set_variable_name", GLUE_2);
    define ("set_output_order", GLUE_3);
    define ("set_cancel_order", GLUE_4);
    define ("set_formula_output", GLUE_5);
    define ("series", GLUE_6);
    define_converter ("upgrade", GLUE_7, PENALTY_INCLUSION);
    define_converter ("upgrade", GLUE_8, PENALTY_INCLUSION);
    define_converter (":>", GLUE_9, PENALTY_CAST);
    define (".[]", GLUE_10);
    define (".[]", GLUE_11);
    define ("-", GLUE_12);
    define ("square", GLUE_13);
    define ("+", GLUE_14);
    define ("-", GLUE_15);
    define ("*", GLUE_16);
    define ("+", GLUE_17);
    define ("+", GLUE_18);
    define ("-", GLUE_19);
    define ("-", GLUE_20);
    define ("*", GLUE_21);
    define ("*", GLUE_22);
    define ("^", GLUE_23);
    define ("^", GLUE_24);
    define ("derive", GLUE_25);
    define ("xderive", GLUE_26);
    define ("dilate", GLUE_27);
    define ("<<", GLUE_28);
    define (">>", GLUE_29);
    define ("^", GLUE_30);
    define ("<=", GLUE_31);
    define (">=", GLUE_32);
    define ("<", GLUE_33);
    define (">", GLUE_34);
    define_converter (":>", GLUE_35, PENALTY_PROMOTE_GENERIC);
  }
void mmx::glue_series_modular_integer ( )

Referenced by glue_algebramix().

void glue_series_rational ( )

Definition at line 792 of file glue_series_rational.cpp.

References GLUE_1(), GLUE_10(), GLUE_100(), GLUE_101(), GLUE_102(), GLUE_103(), GLUE_104(), GLUE_105(), GLUE_106(), GLUE_107(), GLUE_108(), GLUE_109(), GLUE_11(), GLUE_110(), GLUE_111(), GLUE_112(), GLUE_113(), GLUE_114(), GLUE_115(), GLUE_116(), GLUE_117(), GLUE_118(), GLUE_119(), GLUE_12(), GLUE_120(), GLUE_121(), GLUE_122(), GLUE_123(), GLUE_124(), GLUE_125(), GLUE_126(), GLUE_127(), GLUE_128(), GLUE_129(), GLUE_13(), GLUE_130(), GLUE_131(), GLUE_132(), GLUE_133(), GLUE_134(), GLUE_135(), GLUE_136(), GLUE_137(), GLUE_138(), GLUE_139(), GLUE_14(), GLUE_140(), GLUE_141(), GLUE_142(), GLUE_143(), GLUE_144(), GLUE_145(), GLUE_146(), GLUE_147(), GLUE_148(), GLUE_149(), GLUE_15(), GLUE_150(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_38(), GLUE_39(), GLUE_4(), GLUE_40(), GLUE_41(), GLUE_42(), GLUE_43(), GLUE_44(), GLUE_45(), GLUE_46(), GLUE_47(), GLUE_48(), GLUE_49(), GLUE_5(), GLUE_50(), GLUE_51(), GLUE_52(), GLUE_53(), GLUE_54(), GLUE_55(), GLUE_56(), GLUE_57(), GLUE_58(), GLUE_59(), GLUE_6(), GLUE_60(), GLUE_61(), GLUE_62(), GLUE_63(), GLUE_64(), GLUE_65(), GLUE_66(), GLUE_67(), GLUE_68(), GLUE_69(), GLUE_7(), GLUE_70(), GLUE_71(), GLUE_72(), GLUE_73(), GLUE_74(), GLUE_75(), GLUE_76(), GLUE_77(), GLUE_78(), GLUE_79(), GLUE_8(), GLUE_80(), GLUE_81(), GLUE_82(), GLUE_83(), GLUE_84(), GLUE_85(), GLUE_86(), GLUE_87(), GLUE_88(), GLUE_89(), GLUE_9(), GLUE_90(), GLUE_91(), GLUE_92(), GLUE_93(), GLUE_94(), GLUE_95(), GLUE_96(), GLUE_97(), GLUE_98(), and GLUE_99().

Referenced by glue_algebramix().

                          {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_polynomial_rational"));
    call_glue (string ("glue_series_integer"));
    define_type<series<rational> > (gen (lit ("Series"), lit ("Rational")));
    define ("set_variable_name", GLUE_1);
    define ("set_output_order", GLUE_2);
    define ("set_cancel_order", GLUE_3);
    define ("set_formula_output", GLUE_4);
    define ("series", GLUE_5);
    define_converter ("upgrade", GLUE_6, PENALTY_INCLUSION);
    define_converter ("upgrade", GLUE_7, PENALTY_INCLUSION);
    define_converter (":>", GLUE_8, PENALTY_CAST);
    define (".[]", GLUE_9);
    define (".[]", GLUE_10);
    define ("-", GLUE_11);
    define ("square", GLUE_12);
    define ("+", GLUE_13);
    define ("-", GLUE_14);
    define ("*", GLUE_15);
    define ("+", GLUE_16);
    define ("+", GLUE_17);
    define ("-", GLUE_18);
    define ("-", GLUE_19);
    define ("*", GLUE_20);
    define ("*", GLUE_21);
    define ("^", GLUE_22);
    define ("^", GLUE_23);
    define ("derive", GLUE_24);
    define ("xderive", GLUE_25);
    define ("dilate", GLUE_26);
    define ("<<", GLUE_27);
    define (">>", GLUE_28);
    define ("/", GLUE_29);
    define ("/", GLUE_30);
    define ("/", GLUE_31);
    define ("div", GLUE_32);
    define ("divides?", GLUE_33);
    define ("gcd", GLUE_34);
    define ("lcm", GLUE_35);
    define ("integrate", GLUE_36);
    define ("@", GLUE_37);
    define ("reverse", GLUE_38);
    define ("q_difference", GLUE_39);
    define ("shift", GLUE_40);
    define ("shift", GLUE_41);
    define ("<=", GLUE_42);
    define (">=", GLUE_43);
    define ("<", GLUE_44);
    define (">", GLUE_45);
    define_converter (":>", GLUE_46, PENALTY_INCLUSION);
    define_converter (":>", GLUE_47, PENALTY_PROMOTE_GENERIC);
    define ("^", GLUE_48);
    define ("sqrt", GLUE_49);
    define ("exp", GLUE_50);
    define ("log", GLUE_51);
    define ("cos", GLUE_52);
    define ("sin", GLUE_53);
    define ("tan", GLUE_54);
    define ("arccos", GLUE_55);
    define ("arcsin", GLUE_56);
    define ("arctan", GLUE_57);
    define_type<unknown<rational> > (gen (lit ("Unknown"), lit ("Rational")));
    define_converter ("upgrade", GLUE_58, PENALTY_INCLUSION);
    define ("-", GLUE_59);
    define ("square", GLUE_60);
    define ("+", GLUE_61);
    define ("-", GLUE_62);
    define ("*", GLUE_63);
    define ("*", GLUE_64);
    define ("*", GLUE_65);
    define ("fixed_point_series", GLUE_66);
    define ("fixed_point_series", GLUE_67);
    define ("integrate_series", GLUE_68);
    define ("integrate_series", GLUE_69);
    define ("implicit_series", GLUE_70);
    define ("implicit_series", GLUE_71);
    define_type<series<complex<rational> > > (gen (lit ("Series"), gen (lit ("Complex"), lit ("Rational"))));
    define_type<series<unknown<rational> > > (gen (lit ("Series"), gen (lit ("Unknown"), lit ("Rational"))));
    define ("set_variable_name", GLUE_72);
    define ("set_output_order", GLUE_73);
    define ("set_cancel_order", GLUE_74);
    define ("set_formula_output", GLUE_75);
    define ("series", GLUE_76);
    define_converter ("upgrade", GLUE_77, PENALTY_INCLUSION);
    define_converter ("upgrade", GLUE_78, PENALTY_INCLUSION);
    define_converter (":>", GLUE_79, PENALTY_CAST);
    define (".[]", GLUE_80);
    define (".[]", GLUE_81);
    define ("-", GLUE_82);
    define ("square", GLUE_83);
    define ("+", GLUE_84);
    define ("-", GLUE_85);
    define ("*", GLUE_86);
    define ("+", GLUE_87);
    define ("+", GLUE_88);
    define ("-", GLUE_89);
    define ("-", GLUE_90);
    define ("*", GLUE_91);
    define ("*", GLUE_92);
    define ("^", GLUE_93);
    define ("^", GLUE_94);
    define ("derive", GLUE_95);
    define ("xderive", GLUE_96);
    define ("dilate", GLUE_97);
    define ("<<", GLUE_98);
    define (">>", GLUE_99);
    define ("set_variable_name", GLUE_100);
    define ("set_output_order", GLUE_101);
    define ("set_cancel_order", GLUE_102);
    define ("set_formula_output", GLUE_103);
    define ("series", GLUE_104);
    define_converter ("upgrade", GLUE_105, PENALTY_INCLUSION);
    define_converter (":>", GLUE_106, PENALTY_CAST);
    define (".[]", GLUE_107);
    define ("-", GLUE_108);
    define ("square", GLUE_109);
    define ("+", GLUE_110);
    define ("-", GLUE_111);
    define ("*", GLUE_112);
    define ("+", GLUE_113);
    define ("+", GLUE_114);
    define ("-", GLUE_115);
    define ("-", GLUE_116);
    define ("*", GLUE_117);
    define ("*", GLUE_118);
    define ("^", GLUE_119);
    define ("^", GLUE_120);
    define ("derive", GLUE_121);
    define ("xderive", GLUE_122);
    define ("dilate", GLUE_123);
    define ("<<", GLUE_124);
    define (">>", GLUE_125);
    define ("/", GLUE_126);
    define ("/", GLUE_127);
    define ("/", GLUE_128);
    define ("div", GLUE_129);
    define ("divides?", GLUE_130);
    define ("gcd", GLUE_131);
    define ("lcm", GLUE_132);
    define ("integrate", GLUE_133);
    define ("@", GLUE_134);
    define ("reverse", GLUE_135);
    define ("q_difference", GLUE_136);
    define ("shift", GLUE_137);
    define ("shift", GLUE_138);
    define_converter (":>", GLUE_139, PENALTY_INCLUSION);
    define_converter (":>", GLUE_140, PENALTY_INCLUSION);
    define_converter (":>", GLUE_141, PENALTY_INCLUSION);
    define_converter (":>", GLUE_142, PENALTY_INCLUSION);
    define_converter (":>", GLUE_143, PENALTY_PROMOTE_GENERIC);
    define_converter (":>", GLUE_144, PENALTY_PROMOTE_GENERIC);
    define ("fixed_point_series", GLUE_145);
    define ("fixed_point_series", GLUE_146);
    define ("integrate_series", GLUE_147);
    define ("integrate_series", GLUE_148);
    define ("implicit_series", GLUE_149);
    define ("implicit_series", GLUE_150);
  }
void glue_vector_int ( )

Definition at line 199 of file glue_vector_int.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_4(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                     {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_int"));
    call_glue (string ("glue_vector_generic"));
    define_type<vector<int> > (gen (lit ("Vector"), lit ("Int")));
    define ("vector", GLUE_1);
    define ("[]", GLUE_2);
    define_converter (":>", GLUE_3, PENALTY_CAST);
    define ("#", GLUE_4);
    define (".[]", GLUE_5);
    define (".[]", GLUE_6);
    define (".[]", GLUE_7);
    define ("reverse", GLUE_8);
    define ("><", GLUE_9);
    define ("<<", GLUE_10);
    define ("cons", GLUE_11);
    define ("car", GLUE_12);
    define ("cdr", GLUE_13);
    define ("nil?", GLUE_14);
    define ("atom?", GLUE_15);
    define ("insert", GLUE_16);
    define ("find", GLUE_17);
    define ("contains?", GLUE_18);
    define ("-", GLUE_19);
    define ("square", GLUE_20);
    define ("+", GLUE_21);
    define ("-", GLUE_22);
    define ("*", GLUE_23);
    define ("+", GLUE_24);
    define ("+", GLUE_25);
    define ("-", GLUE_26);
    define ("-", GLUE_27);
    define ("*", GLUE_28);
    define ("*", GLUE_29);
    define ("dot", GLUE_30);
    define ("big_mul", GLUE_31);
    define ("big_add", GLUE_32);
    define ("<=", GLUE_33);
    define (">=", GLUE_34);
    define ("<", GLUE_35);
    define (">", GLUE_36);
    define_converter (":>", GLUE_37, PENALTY_PROMOTE_GENERIC);
  }
void glue_vector_integer ( )

Definition at line 195 of file glue_vector_integer.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_4(), GLUE_5(), GLUE_6(), GLUE_7(), GLUE_8(), and GLUE_9().

Referenced by glue_algebramix().

                         {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_integer"));
    call_glue (string ("glue_vector_generic"));
    define_type<vector<integer> > (gen (lit ("Vector"), lit ("Integer")));
    define ("vector", GLUE_1);
    define ("[]", GLUE_2);
    define_converter (":>", GLUE_3, PENALTY_CAST);
    define ("#", GLUE_4);
    define (".[]", GLUE_5);
    define (".[]", GLUE_6);
    define (".[]", GLUE_7);
    define ("reverse", GLUE_8);
    define ("><", GLUE_9);
    define ("<<", GLUE_10);
    define ("cons", GLUE_11);
    define ("car", GLUE_12);
    define ("cdr", GLUE_13);
    define ("nil?", GLUE_14);
    define ("atom?", GLUE_15);
    define ("insert", GLUE_16);
    define ("find", GLUE_17);
    define ("contains?", GLUE_18);
    define ("-", GLUE_19);
    define ("square", GLUE_20);
    define ("+", GLUE_21);
    define ("-", GLUE_22);
    define ("*", GLUE_23);
    define ("+", GLUE_24);
    define ("+", GLUE_25);
    define ("-", GLUE_26);
    define ("-", GLUE_27);
    define ("*", GLUE_28);
    define ("*", GLUE_29);
    define ("dot", GLUE_30);
    define ("big_mul", GLUE_31);
    define ("big_add", GLUE_32);
    define ("<=", GLUE_33);
    define (">=", GLUE_34);
    define ("<", GLUE_35);
    define (">", GLUE_36);
    define_converter (":>", GLUE_37, PENALTY_PROMOTE_GENERIC);
  }
void mmx::glue_vector_modular_integer ( )

Referenced by glue_algebramix().

void glue_vector_rational ( )

Definition at line 412 of file glue_vector_rational.cpp.

References GLUE_1(), GLUE_10(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_14(), GLUE_15(), GLUE_16(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_38(), GLUE_39(), GLUE_4(), GLUE_40(), GLUE_41(), GLUE_42(), GLUE_43(), GLUE_44(), GLUE_45(), GLUE_46(), GLUE_47(), GLUE_48(), GLUE_49(), GLUE_5(), GLUE_50(), GLUE_51(), GLUE_52(), GLUE_53(), GLUE_54(), GLUE_55(), GLUE_56(), GLUE_57(), GLUE_58(), GLUE_59(), GLUE_6(), GLUE_60(), GLUE_61(), GLUE_62(), GLUE_63(), GLUE_64(), GLUE_65(), GLUE_66(), GLUE_67(), GLUE_68(), GLUE_69(), GLUE_7(), GLUE_70(), GLUE_71(), GLUE_72(), GLUE_73(), GLUE_74(), GLUE_75(), GLUE_76(), GLUE_77(), GLUE_78(), GLUE_79(), GLUE_8(), GLUE_80(), and GLUE_9().

Referenced by glue_algebramix().

                          {
    static bool done = false;
    if (done) return;
    done = true;
    call_glue (string ("glue_complex_rational"));
    call_glue (string ("glue_vector_integer"));
    define_type<vector<rational> > (gen (lit ("Vector"), lit ("Rational")));
    define_type<vector<complex<rational> > > (gen (lit ("Vector"), gen (lit ("Complex"), lit ("Rational"))));
    define ("vector", GLUE_1);
    define ("[]", GLUE_2);
    define_converter (":>", GLUE_3, PENALTY_CAST);
    define ("#", GLUE_4);
    define (".[]", GLUE_5);
    define (".[]", GLUE_6);
    define (".[]", GLUE_7);
    define ("reverse", GLUE_8);
    define ("><", GLUE_9);
    define ("<<", GLUE_10);
    define ("cons", GLUE_11);
    define ("car", GLUE_12);
    define ("cdr", GLUE_13);
    define ("nil?", GLUE_14);
    define ("atom?", GLUE_15);
    define ("insert", GLUE_16);
    define ("find", GLUE_17);
    define ("contains?", GLUE_18);
    define ("vector", GLUE_19);
    define ("[]", GLUE_20);
    define_converter (":>", GLUE_21, PENALTY_CAST);
    define ("#", GLUE_22);
    define (".[]", GLUE_23);
    define (".[]", GLUE_24);
    define (".[]", GLUE_25);
    define ("reverse", GLUE_26);
    define ("><", GLUE_27);
    define ("<<", GLUE_28);
    define ("cons", GLUE_29);
    define ("car", GLUE_30);
    define ("cdr", GLUE_31);
    define ("nil?", GLUE_32);
    define ("atom?", GLUE_33);
    define ("insert", GLUE_34);
    define ("find", GLUE_35);
    define ("contains?", GLUE_36);
    define ("-", GLUE_37);
    define ("square", GLUE_38);
    define ("+", GLUE_39);
    define ("-", GLUE_40);
    define ("*", GLUE_41);
    define ("+", GLUE_42);
    define ("+", GLUE_43);
    define ("-", GLUE_44);
    define ("-", GLUE_45);
    define ("*", GLUE_46);
    define ("*", GLUE_47);
    define ("dot", GLUE_48);
    define ("big_mul", GLUE_49);
    define ("big_add", GLUE_50);
    define ("/", GLUE_51);
    define ("/", GLUE_52);
    define ("/", GLUE_53);
    define ("<=", GLUE_54);
    define (">=", GLUE_55);
    define ("<", GLUE_56);
    define (">", GLUE_57);
    define ("abs", GLUE_58);
    define_converter (":>", GLUE_59, PENALTY_INCLUSION);
    define_converter (":>", GLUE_60, PENALTY_HOMOMORPHISM);
    define_converter (":>", GLUE_61, PENALTY_PROMOTE_GENERIC);
    define_converter (":>", GLUE_62, PENALTY_HOMOMORPHISM);
    define_converter (":>", GLUE_63, PENALTY_PROMOTE_GENERIC);
    define ("-", GLUE_64);
    define ("square", GLUE_65);
    define ("+", GLUE_66);
    define ("-", GLUE_67);
    define ("*", GLUE_68);
    define ("+", GLUE_69);
    define ("+", GLUE_70);
    define ("-", GLUE_71);
    define ("-", GLUE_72);
    define ("*", GLUE_73);
    define ("*", GLUE_74);
    define ("dot", GLUE_75);
    define ("big_mul", GLUE_76);
    define ("big_add", GLUE_77);
    define ("/", GLUE_78);
    define ("/", GLUE_79);
    define ("/", GLUE_80);
  }
polynomial<C,V> mmx::graeffe ( const polynomial< C, V > &  P)
Examples:
polynomial_test.cpp.

Definition at line 1261 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

Referenced by GLUE_37(), GLUE_41(), GLUE_45(), and GLUE_96().

                              {
  typedef implementation<polynomial_graeffe,V> Pol;
  nat n= N(P);
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::graeffe (r, seg (P), n);
  return Polynomial (r, n, l, CF(P));
}
matrix<C> mmx::hankel_matrix ( const vector< C > &  v)

Definition at line 760 of file matrix.hpp.

References CF(), and N().

Referenced by GLUE_20(), GLUE_23(), GLUE_37(), and GLUE_82().

                                   {
  ASSERT ((N(v)&1) == 1, "odd dimension expected");
  nat n= (N(v) >> 1) + 1;
  matrix<C> m (promote (0, CF(v)), n, n);
  for (nat i=0; i<n; i++)
    for (nat j=0; j<n; j++)
      m (i, j)= v [i+j];
  return m;
}
bool mmx::hard_eq ( const quotient< NT, DT > &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 152 of file quotient.hpp.

References denominator(), hard_eq(), and numerator().

                                                                  {
  return hard_eq (numerator (x1), numerator (x2)) &&
         hard_eq (denominator (x1), denominator (x2)); }
bool mmx::hard_eq ( const algebraic_number_extension< C, Ball > &  x,
const algebraic_number_extension< C, Ball > &  y 
) [inline]

Definition at line 86 of file algebraic_number.hpp.

References hard_eq().

                                                          {
  return hard_eq (*x, *y); }
bool mmx::hard_eq ( const algebraic_extension< C > &  x,
const algebraic_extension< C > &  y 
) [inline]

Definition at line 66 of file algebraic_extension.hpp.

References hard_eq().

                                                                  {
  return hard_eq (*x, *y); }
bool mmx::hard_eq ( const algebraic< C, Extension > &  x1,
const algebraic< C, Extension > &  x2 
) [inline]

Definition at line 116 of file algebraic.hpp.

References field(), and value().

Referenced by hard_eq(), hard_neq(), join(), and upgrade().

                                                                    {
  return hard_eq (value (x1), value (x2)) &&
         hard_eq (field (x1), field (x2)); }
nat mmx::hard_hash ( const algebraic_number_extension< C, Ball > &  x) [inline]

Definition at line 77 of file algebraic_number.hpp.

References hard_hash().

{ return hard_hash (*x); }
nat mmx::hard_hash ( const algebraic_extension< C > &  x) [inline]

Definition at line 57 of file algebraic_extension.hpp.

References hard_hash().

{ return hard_hash (*x); }
nat mmx::hard_hash ( const quotient< NT, DT > &  x) [inline]

Definition at line 139 of file quotient.hpp.

References denominator(), hard_hash(), and numerator().

                                              {
  nat h= hard_hash (numerator (x));
  return (h<<1) ^ (h<<5) ^ (h>>29) ^ hard_hash (denominator (x)); }
nat mmx::hard_hash ( const algebraic< C, Extension > &  x) [inline]

Definition at line 108 of file algebraic.hpp.

References field(), and value().

Referenced by hard_hash().

                                               {
  nat h= hard_hash (value (x));
  return (h<<1) ^ (h<<5) ^ (h>>29) ^ hard_hash (field (x)); }
bool mmx::hard_neq ( const algebraic_extension< C > &  x,
const algebraic_extension< C > &  y 
) [inline]

Definition at line 68 of file algebraic_extension.hpp.

References hard_neq().

                                                                   {
  return hard_neq (*x, *y); }
bool mmx::hard_neq ( const quotient< NT, DT > &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 155 of file quotient.hpp.

References hard_eq().

                                                                   {
  return !hard_eq (x1, x2); }
bool mmx::hard_neq ( const algebraic< C, Extension > &  x1,
const algebraic< C, Extension > &  x2 
) [inline]

Definition at line 119 of file algebraic.hpp.

References hard_eq().

Referenced by hard_neq(), and upgrade().

                                                                     {
  return !hard_eq (x1, x2); }
bool mmx::hard_neq ( const algebraic_number_extension< C, Ball > &  x,
const algebraic_number_extension< C, Ball > &  y 
) [inline]

Definition at line 88 of file algebraic_number.hpp.

References hard_neq().

                                                           {
  return hard_neq (*x, *y); }
mmx::HARD_TO_EXACT_IDENTITY_SUGAR ( template< typename C, typename V ,
series< C, V  
)
nat mmx::hash ( const quotient< NT, DT > &  x) [inline]

Definition at line 133 of file quotient.hpp.

References denominator(), hash(), and numerator().

                                         {
  nat h= hash (numerator (x));
  return (h<<1) ^ (h<<5) ^ (h>>29) ^ hash (denominator (x)); }
nat mmx::hash ( const algebraic< C, Extension > &  x) [inline]

Definition at line 102 of file algebraic.hpp.

References field(), and value().

Referenced by hash().

                                          {
  nat h= hash (value (x));
  return (h<<1) ^ (h<<5) ^ (h>>29) ^ hash (field (x)); }
nat mmx::hash ( const algebraic_number_extension< C, Ball > &  x) [inline]

Definition at line 75 of file algebraic_number.hpp.

References hash().

{ return hash (*x); }
nat mmx::hash ( const quotient_series< Series, Monomial > &  f) [inline]

Definition at line 89 of file quotient_series.hpp.

                                                {
  // FIXME: find something better to return here
  (void) f; return 0; }
nat mmx::hash ( const series< C, V > &  s) [inline]

Definition at line 283 of file series.hpp.

                       {
  return unary_hash<hash_op> (s);
}
nat mmx::hash ( const algebraic_extension< C > &  x) [inline]

Definition at line 55 of file algebraic_extension.hpp.

References hash().

{ return hash (*x); }
matrix<C> mmx::hilbert_matrix ( const int &  n,
const format< C > &  fm = format<C> () 
)

Definition at line 720 of file matrix.hpp.

                                                                 {
  matrix<C> m (promote (0, fm), n, n);
  for (nat i=0; i<(nat) n; i++)
    for (nat j=0; j<(nat) n; j++)
      m (i, j)= 1 / promote (1 + i + j, fm);
  return m;
}
matrix<C,V> mmx::horizontal_join ( const matrix< C, V > &  m1,
const matrix< C, V > &  m2 
)

Definition at line 775 of file matrix.hpp.

References CF(), cols(), is_non_scalar(), Matrix, and rows().

Referenced by bareiss_krylov(), GLUE_15(), GLUE_17(), GLUE_18(), and GLUE_32().

                                                     {
  ASSERT (is_non_scalar (m1) || is_non_scalar (m2),
          "non-scalar matrix expected");
  if (!is_non_scalar (m1))
    return horizontal_join (Matrix (m1.scalar(), rows (m2), rows (m2)), m2);
  if (!is_non_scalar (m2))
    return horizontal_join (m1, Matrix (m2.scalar(), rows (m1), rows (m1)));
  ASSERT (rows (m1) == rows (m2), "unequal number of rows");
  Matrix r (promote (0, CF(m1)), rows (m1), cols (m1) + cols (m2));
  for (nat i=0; i<rows(m1); i++) {
    for (nat j=0; j<cols(m1); j++)
      r(i,j)= m1(i,j);
    for (nat j=0; j<cols(m2); j++)
      r(i,j+cols(m1))= m2(i,j);
  }
  return r;
}
vector<nat> mmx::id_vector ( nat  n) [inline]

Definition at line 27 of file permutation.hpp.

Referenced by cycle(), and transposition().

                  {
  vector<nat> v= fill<nat> (n);
  for (nat i=0; i<n; i++) v[i]= i;
  return v;
}
matrix<C> mmx::identity_matrix ( const int &  n,
const format< C > &  fm = format<C> () 
)

Definition at line 695 of file matrix.hpp.

                                                                  {
  return matrix<C> (promote (1, fm), n, n);
}
matrix<Real_type(C),V> mmx::Im ( const matrix< C, V > &  m)

Definition at line 671 of file matrix.hpp.

{ return unary_map<Im_op> (m); }
algebraic_real mmx::Im ( const algebraic_number &  z) [inline]

Definition at line 430 of file algebraic_number.hpp.

References over_i(), and Re().

Referenced by GLUE_56().

                               {
  return Re (over_i (z));
}
polynomial<Real_type(C),V> mmx::Im ( const polynomial< C, V > &  p)

Definition at line 1395 of file polynomial.hpp.

{ return unary_map<Im_op> (p); }
matrix<C,V> mmx::image ( const matrix< C, V > &  m)
Examples:
matrix_test.cpp.

Definition at line 1180 of file matrix.hpp.

References CF(), cols(), is_non_scalar(), Matrix, range(), rows(), and tab().

Referenced by GLUE_110(), GLUE_40(), GLUE_65(), and krylov().

                        {
  typedef implementation<matrix_image,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix k (promote (0, CF(m)), rows(m), rows(m));
  nat dim= Mat::image (tab(k), tab(m), rows(m), cols(m));
  return range (k, 0, 0, rows(m), dim);
}
series<C> mmx::implicit_series ( const routine &  fun,
const vector< C > &  c 
) [inline]

Definition at line 146 of file series_sugar.hpp.

References access(), and solver().

Referenced by GLUE_149(), GLUE_51(), GLUE_70(), and implicit_series().

                                                         {
  series_rep<VC >* rep= (series_rep<VC >*) new implicit_series_rep<C> (fun, c);
  return access (solver (series<VC > (rep)), 0);
}
series<C> mmx::implicit_series ( const routine &  fun,
const C &  c 
) [inline]

Definition at line 152 of file series_sugar.hpp.

References implicit_series().

                                                 {
  return implicit_series (fun, vec<C> (c));
}
vector<series<C> > mmx::implicit_vector_series ( const routine &  fun,
const vector< vector< C > > &  c 
) [inline]

Definition at line 188 of file series_sugar.hpp.

References as_vector(), N(), and solver().

Referenced by gen_implicit_vector_series(), and implicit_vector_series().

                                                                         {
  ASSERT (N(c) > 0, "at least one initial condition required");
  series_rep<VC >* rep=
    (series_rep<VC >*) new implicit_vector_series_rep<C> (fun, c);
  return as_vector (solver (series<VC > (rep)));
}
vector<series<C> > mmx::implicit_vector_series ( const routine &  fun,
const vector< C > &  c 
) [inline]

Definition at line 196 of file series_sugar.hpp.

References implicit_vector_series().

                                                                {
  return implicit_vector_series (fun, vec<vector<C> > (c));
}
bool mmx::improve_zero ( const polynomial< C > &  p,
Ball &  z 
)

Definition at line 127 of file algebraic_number.hpp.

References abs(), center(), Center_type(), copy(), derive(), eval(), Polynomial, radius(), and sharpen().

Referenced by increase_precision(), and shrink().

                                            {
  typedef Center_type(Ball) CBall;
  typedef Radius_type(Ball) RBall;
  if (p[0] == 0 && z == 0) { z= Ball (0); return true; }
  CBall x= center (copy (z));
  RBall r= radius (z);
  Polynomial dp= derive (p);
  while (true) {
    CBall nx= x - eval (p, x) / eval (dp, x);
    RBall nr= as<RBall> (abs (nx - x));
    while (true) {
      Ball nb= Ball (nx, nr);
      if (eval (dp, nb) == 0) return false;
      RBall rr= abs_up (eval (p, sharpen (nb)) / eval (dp, nb));
      if (rr <= nr) break;
      nr= max (2 * nr, rr);
    }
    bool ok= (2 * nr >= r);
    x= nx;
    r= nr;
    if (ok) break;
  }
  if (!included (Ball (x, r), z)) return false;
  z= Ball (x, r);
  return true;
}
void mmx::increase_order ( const series< C, V > &  f,
nat  l 
)

Definition at line 196 of file series.hpp.

Referenced by ldiv_mat_series_rep< C, V, W, U >::Increase_order(), ldiv_sc_mat_series_rep< C, V, W, U >::Increase_order(), carry_special_add_series_rep< C, V >::Increase_order(), carry_add_quorem_series_rep< C, V >::Increase_order(), carry_mul_quorem_series_rep< C, V, X >::Increase_order(), lshiftz_series_vector_rep< C, V, W >::Increase_order(), vector_series_rep< C, V, W >::Increase_order(), vector_access_series_rep< C, V, W >::Increase_order(), implementation< series_multiply, U, series_relaxed< W > >::mul_series_rep< C, V >::Increase_order(), implementation< series_compose, U, series_naive >::reverse_series_rep< C, V >::Increase_order(), implementation< series_compose, U, series_naive >::compose_series_rep< C, V >::Increase_order(), implementation< series_abstractions, U, series_naive >::binary_series_rep< Op, C, V >::Increase_order(), implementation< series_abstractions, U, series_naive >::unary_series_rep< Op, C, V >::Increase_order(), implementation< series_recursive_abstractions, U, series_naive >::binary_scalar_recursive_series_rep< Op, C, V, X >::Increase_order(), implementation< series_recursive_abstractions, U, series_naive >::binary_recursive_series_rep< Op, C, V >::Increase_order(), implementation< series_recursive_abstractions, U, series_naive >::unary_recursive_series_rep< Op, C, V >::Increase_order(), implementation< series_map_as_abstractions, U, series_naive >::unary_map_as_series_rep< Op, C, V, S, SV >::Increase_order(), implementation< series_scalar_abstractions, U, series_naive >::ternary_scalar_series_rep< Op, C, V, X, Y >::Increase_order(), implementation< series_scalar_abstractions, U, series_naive >::binary_scalar_series_rep< Op, C, V, X >::Increase_order(), ldiv_mat_mat_series_rep< C, V, U >::Increase_order(), ldiv_sc_mat_mat_series_rep< C, V, U, UU >::Increase_order(), lshiftz_series_matrix_rep< C, V, U >::Increase_order(), matrix_series_rep< C, V, U >::Increase_order(), matrix_access_series_rep< C, V, U >::Increase_order(), solver_container_series_rep< C, V >::Increase_order(), solver_series_rep< C, V >::Increase_order(), known_series_rep< C, V, UV >::Increase_order(), implementation< series_multiply, U, series_fast >::mul_series_rep< C, V >::Increase_order(), implementation< series_multiply, U, series_fast >::nrelax_mul_series_rep< C, V >::Increase_order(), implementation< series_multiply, U, series_carry_relaxed< W > >::mul_series_rep< M, V >::Increase_order(), implementation< series_divide, U, series_carry_naive >::div_series_rep< M, V >::Increase_order(), implementation< series_divide, U, series_carry_naive >::rdiv_sc_series_rep< M, V, X >::Increase_order(), implementation< series_divide, U, series_carry_naive >::carry_mul_sc_series_rep< M, V, X >::Increase_order(), implementation< series_abstractions, U, series_carry_naive >::binary_series_rep< Op, M, V >::Increase_order(), implementation< series_abstractions, U, series_carry_naive >::unary_series_rep< Op, M, V >::Increase_order(), implementation< series_scalar_abstractions, U, series_carry_naive >::binary_scalar_series_rep< Op, M, V, X >::Increase_order(), implementation< series_multiply, U, series_carry_blocks< W, s, BV, t > >::mul_series_rep< M, V >::Increase_order(), binary_scalar_recursive_monoblock_series_rep< Op, M, V, s, BV, t, X >::Increase_order(), truncate_mul_monoblock_series_rep< M, V, s, BV, t >::Increase_order(), binary_monoblock_series_rep< Op, M, V, s, BV, t >::Increase_order(), change_precision_series_rep< C, V >::Increase_order(), deflate_series_rep< C, V >::Increase_order(), dilate_series_rep< C, V >::Increase_order(), q_difference_series_rep< C, V >::Increase_order(), shift_series_rep< C, V >::Increase_order(), integrate_series_rep< C, V >::Increase_order(), xderive_series_rep< C, V >::Increase_order(), derive_series_rep< C, V >::Increase_order(), piecewise_series_rep< C, V >::Increase_order(), restrict_series_rep< C, V >::Increase_order(), lshiftz_series_rep< C, V >::Increase_order(), lcm_series_rep< C, V >::Increase_order(), gcd_series_rep< C, V >::Increase_order(), map_series_rep< C, V, S, SV >::Increase_order(), cast_series_rep< C, V, K, W >::Increase_order(), slow_series_rep< C, V >::Increase_order(), fast_series_rep< C, V >::Increase_order(), recursive_container_series_rep< C, V >::Increase_order(), recursive_series_rep< vector< C > >::Increase_order(), system_root_series_rep< M, V, W >::increase_order_generic(), and root_series_rep< M, V >::increase_order_generic().

                                        {
  if (f->l < l) inside (f) -> Increase_order (l);
}
void mmx::increase_precision ( const algebraic_number_extension< C, Ball > &  ext)

Definition at line 176 of file algebraic_number.hpp.

References Center_type(), Field, improve_zero(), and precision().

Referenced by eval().

                                      {
  typedef Center_type(Ball) CBall;
  typedef Radius_type(Ball) RBall;
  if (precision (ext.x) >= mmx_bit_precision) return;
  Ball new_x= ext.x;
  if (!improve_zero (ext.ext.mp, new_x)) {
    mmerr << "mp= " << ext.ext.mp << "\n";
    mmerr << "x = " << new_x << "\n";
    ERROR ("unexpected situation");
  }
  (const_cast<Field*> (&ext)) -> x= new_x;
}
mmx::INDIRECT_IMPL_2 ( unknown  ,
unknown_rep  ,
typename C  ,
,
typename V  ,
V   
)
mmx::INDIRECT_IMPL_2 ( quotient_series  ,
quotient_series_rep  ,
typename Series  ,
Series  ,
typename Monomial  ,
Monomial   
)
mmx::INDIRECT_IMPL_2 ( polynomial  ,
polynomial_rep  ,
typename C  ,
,
typename V  ,
V   
)
mmx::INDIRECT_IMPL_2 ( series  ,
series_rep  ,
typename C  ,
,
typename V  ,
V   
)
mmx::INDIRECT_IMPL_2 ( matrix  ,
matrix_rep  ,
typename C  ,
,
typename V  ,
V   
)
void mmx::insert_and_reduce ( vector< unknown< C, V > > &  sys,
unknown< C, V > &  c 
)

Definition at line 310 of file series_implicit.hpp.

References is_exact_zero(), N(), and reduce().

Referenced by solver_series_rep< C, V >::next().

                                            {
  for (nat i=0; i<N(sys); i++)
    reduce (c, sys[i]);
  if (is_exact_zero (c)) return;
  ASSERT (c->i1 != c->i2, "contradictory equations");
  sys << c;
}
static polynomial< mmx_modular(integer), polynomial_carry_variant_helper< mmx_modular(integer) >::PV > integer_as_p_expansion ( const integer &  c,
const modulus< integer > &  p 
) [inline, static]

Definition at line 24 of file glue_p_adic_modular_integer.cpp.

References simple_as_p_expansion.

Referenced by GLUE_8().

                                                                      {
    return simple_as_p_expansion(integer)(c, p); }
polynomial<C,V> mmx::integrate ( const polynomial< C, V > &  P)

Definition at line 1041 of file polynomial.hpp.

References C, CF(), integrate(), N(), Polynomial, and seg().

                                {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= N(P);
  nat l= aligned_size<C,V> (n+1);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::integrate (r, seg (P), n);
  return Polynomial (r, n+1, l, CF(P));
}
matrix<C,V> mmx::integrate ( const matrix< C, V > &  m)
series<C,V> mmx::integrate ( const series< C, V > &  f) [inline]

Definition at line 944 of file series.hpp.

References CF(), is_exact_zero(), Series, and Series_rep.

                            {
  if (is_exact_zero (f)) return Series (CF(f));
  return (Series_rep*) new integrate_series_rep<C,V> (f);
}
series<C,V> mmx::integrate_coeffs ( const series< C, V > &  f,
const T &  v 
) [inline]

Definition at line 955 of file series.hpp.

                                               {
  return binary_scalar_series<integrate_op> (f, v);
}
series<C,V> mmx::integrate_init ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 950 of file series.hpp.

References Series_rep.

Referenced by integrate_series_rep< C, V >::expression().

                                             {
  return (Series_rep*) new integrate_series_rep<C,V> (f, c);
}
series<C> mmx::integrate_series ( const routine &  fun,
const C &  c 
) [inline]

Definition at line 63 of file series_sugar.hpp.

References fixed_point_series(), and integrate().

Referenced by GLUE_147(), GLUE_49(), and GLUE_68().

                                                  {
  return fixed_point_series (integrate (fun), vec<C> (c));
}
polynomial<C,typename polynomial_variant_helper< C >::PV > mmx::interpolate ( const vector< C > &  v,
const vector< C > &  x 
) [inline]

Definition at line 1184 of file polynomial.hpp.

Referenced by GLUE_35(), GLUE_43(), GLUE_94(), and implementation< polynomial_evaluate, V, polynomial_naive >::interpolate().

                                               {
  return interpolate_bis<C,typename Polynomial_variant(C) > (v, x);
}
polynomial<C,V> mmx::interpolate_bis ( const vector< C > &  v,
const vector< C > &  x 
) [inline]

Definition at line 1178 of file polynomial.hpp.

                                                   {
  typedef implementation<polynomial_evaluate,V> Pol;
  return Pol::template interpolate<Polynomial> (v, x);
}
mmx::INV_TRIGO_SUGAR ( template< typename C, typename V ,
series< C, V  
)
void mmx::inverse_base ( typename Baser::base &  d,
const typename Baser::modulus_base *  src,
nat  n,
Baser &  baser 
) [inline]
void mmx::inverse_base ( typename Baser::base &  d,
const vector< typename Baser::modulus_base, W > &  src,
Baser &  baser 
) [inline]

Definition at line 187 of file base_naive.hpp.

References N(), and seg().

                                                          {
  baser.inverse_transform (d, seg (src), N(src));
}
Baser::base mmx::inverse_base ( const vector< typename Baser::modulus_base, W > &  src,
Baser &  baser 
) [inline]

Definition at line 192 of file base_naive.hpp.

References C, inverse_base(), N(), and seg().

                                                    {
  C d; inverse_base (d, seg (src), N(src), baser);
  return d;
}
void mmx::inverse_crt ( typename Crter::base &  d,
const typename Crter::modulus_base *  src,
Crter &  crter 
) [inline]
void mmx::inverse_crt ( typename Crter::base &  d,
const vector< typename Crter::modulus_base, W > &  src,
Crter &  crter 
) [inline]

Definition at line 364 of file crt_naive.hpp.

References seg().

                                                         {
  crter.inverse_transform (d, seg (src));
}
Crter::base mmx::inverse_crt ( const vector< typename Crter::modulus_base, W > &  src,
Crter &  crter 
) [inline]

Definition at line 369 of file crt_naive.hpp.

References C, inverse_crt(), and seg().

                                                   {
  C d; inverse_crt (d, seg (src), crter);
  return d;
}
void mmx::inverse_fft ( C *  dest,
nat  n 
) [inline]

Definition at line 214 of file fft_naive.hpp.

References fft_naive_transformer< C, V >::inverse_transform().

                             {
  fft_naive_transformer<C> ffter (n);
  ffter.inverse_transform (dest);
}
void mmx::inverse_fft_triadic ( C *  dest,
nat  n 
) [inline]

Definition at line 188 of file fft_triadic_naive.hpp.

References fft_triadic_naive_transformer< C, VV >::inverse_transform_triadic().

                                     {
  fft_triadic_naive_transformer<C> ffter (n);
  ffter.inverse_transform_triadic (dest);
}
void mmx::inverse_kronecker ( integer *  dest,
nat  n,
xnat  bits,
const integer &  src 
)
algebraic_number_extension<C,Ball>::El mmx::invert ( const algebraic_number_extension< C, Ball > &  ext,
const typename algebraic_number_extension< C, Ball >::El &  p1 
) [inline]

Definition at line 242 of file algebraic_number.hpp.

References invert().

                                             {
  return invert (ext.ext, p1);
}
permutation invert ( const permutation &  p)

Definition at line 56 of file permutation.cpp.

References N().

                              {
  nat n= N(p);
  vector<nat> v= fill<nat> (n);
  for (nat i=0; i<n; i++) v[p(i)]= i;
  return permutation (v);
}
series<C,V> mmx::invert ( const series< C, V > &  f) [inline]

Definition at line 1094 of file series.hpp.

References CF().

                         {
  return promote (1, CF(f)) / f;
}
matrix<C,V> mmx::invert ( const matrix< C, V > &  m)

Definition at line 1154 of file matrix.hpp.

References CF(), cols(), invert(), is_a_scalar(), Matrix, rows(), and tab().

                         {
  typedef implementation<matrix_invert,V> Mat;
  if (is_a_scalar (m)) return Matrix (invert (m.scalar()));
  ASSERT (cols(m) == rows(m), "square matrix expected");
  Matrix a (promote (1, CF(m)), rows(m), cols(m));
  Mat::invert (tab(a), tab(m), rows(m));
  return a;
}
algebraic<C,Extension> mmx::invert ( const algebraic< C, Extension > &  x1) [inline]
Examples:
matrix_test.cpp.

Definition at line 253 of file algebraic.hpp.

References Algebraic, field(), and value().

Referenced by roots_helper< CC, UU, SS >::dtft_cross(), ldiv_mat_series_rep< C, V, W, U >::expression(), ldiv_sc_mat_series_rep< C, V, W, U >::expression(), ldiv_mat_mat_series_rep< C, V, U >::expression(), ldiv_sc_mat_mat_series_rep< C, V, U, UU >::expression(), GLUE_11(), GLUE_112(), GLUE_42(), GLUE_67(), ldiv_mat_series_rep< C, V, W, U >::initialize(), ldiv_sc_mat_series_rep< C, V, W, U >::initialize(), ldiv_mat_mat_series_rep< C, V, U >::initialize(), ldiv_sc_mat_mat_series_rep< C, V, U, UU >::initialize(), implementation< series_divide, U, series_carry_naive >::div_series_rep< M, V >::initialize(), implementation< series_divide, U, series_carry_naive >::rdiv_sc_series_rep< M, V, X >::initialize(), fft_truncated_transformer< C, Ffter >::inverse_transform(), fft_threads_transformer< C, FFTER, thr >::inverse_transform(), fft_simd_transformer< C, FFTER, FFTER_SIMD, thr >::inverse_transform(), fft_naive_transformer< C, V >::inverse_transform(), fft_blocks_transformer< C, FFTER, log2_outer_block_size, log2_block_number, log2_inner_block_size, threshold >::inverse_transform(), fft_triadic_threads_transformer< C, FFTER, thr >::inverse_transform_triadic(), fft_triadic_naive_transformer< C, VV >::inverse_transform_triadic(), invert(), roots_helper< CC, UU, SS >::itft_flip(), join(), integrate_series_rep< C, V >::next(), and operator/().

                             {
  return Algebraic (field (x1), invert (field (x1), value (x1)));
}
algebraic_extension<C>::El mmx::invert ( const algebraic_extension< C > &  ext,
const typename algebraic_extension< C >::El &  p1 
)

Definition at line 107 of file algebraic_extension.hpp.

References Element, and gcd().

                                                 {
  Element a= promote (0, p1), b= promote (0, p1), c= gcd (p1, ext.mp, a, b);
  return a;
}
polynomial<C,V> mmx::invert_hi ( const polynomial< C, V > &  P)

Definition at line 1293 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

Referenced by implementation< polynomial_divide, V, polynomial_dicho< BV > >::invert_hi(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::quo_rem(), and implementation< polynomial_divide, V, polynomial_dicho< BV > >::tquo_rem().

                                {
  typedef implementation<polynomial_divide,V> Pol;
  nat n= N(P);
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::invert_hi (r, seg (P), n);
  return Polynomial (r, n, l, CF(P));
}
polynomial<C,V> mmx::invert_lo ( const polynomial< C, V > &  P,
nat  m 
)

Definition at line 1271 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

Referenced by implementation< polynomial_divide, V, polynomial_dicho< BV > >::invert_lo(), invert_lo(), and implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::tevaluate().

                                       {
  typedef implementation<polynomial_divide,V> Pol;
  nat n= N(P);
  nat l= aligned_size<C,V> (m);
  C* r= mmx_formatted_new<C> (l, CF(P));
  if (n >= m)
    Pol::invert_lo (r, seg (P), m);
  else {
    C* t= mmx_formatted_new<C> (l, CF(P));
    Pol::copy (t, seg (P), n);
    Pol::clear (t + n, m - n);
    Pol::invert_lo (r, t, m);
  }
  return Polynomial (r, m, l, CF(P));
}
polynomial<C,V> mmx::invert_lo ( const polynomial< C, V > &  P) [inline]

Definition at line 1288 of file polynomial.hpp.

References invert_lo(), and N().

                                {
  return invert_lo (P, N(P));
}
polynomial<C,V> mmx::invert_modulo ( const polynomial< C, V > &  P,
const polynomial< C, V > &  Q 
) [inline]

Definition at line 834 of file polynomial.hpp.

Referenced by implementation< polynomial_gcd, X, polynomial_series< BV > >::inv_mod_polynomial_series_rep< C, U, V, W >::initialize(), and modulus_polynomial_inv_naive< V >::inv_mod().

                                                         {
  typedef implementation<polynomial_gcd,V> Pol;
  return Pol::invert_mod (P, Q);
}
bool mmx::is_a_scalar ( const matrix< C, matrix_fixed< V, RS, CS > > &  m) [inline]

Definition at line 298 of file matrix.hpp.

{ (void) m; return false; }
bool mmx::is_exact_zero ( const series< C, V > &  f)

Definition at line 299 of file series.hpp.

Referenced by deflate(), derive(), dilate(), div_kronecker(), series_carry_monoblock_transformer< M, W, s, BV >::from_monoblock(), insert_and_reduce(), integrate(), is_exact_zero(), lshiftz(), lshiftz_series_matrix(), lshiftz_series_vector(), matrix_mul_quo(), solver_series_rep< C, V >::next(), REP_STRUCT< Series, Monomial >::normalize(), operator*(), operator+(), operator-(), operator/(), q_difference(), reduce(), rem(), restrict(), rshiftz(), implementation< series_separable_root, U, series_naive >::sep_root(), implementation< series_separable_root, U, series_carry_naive >::sep_root(), implementation< series_compose, U, series_naive >::ser_compose(), implementation< series_divide, U, series_naive >::ser_div(), implementation< series_divide, U, series_carry_naive >::ser_div(), implementation< series_divide, U, series_carry_monoblock< W, s, BV, t > >::ser_div(), ser_ldiv_mat(), ser_ldiv_mat_mat(), ser_ldiv_sc_mat(), ser_ldiv_sc_mat_mat(), implementation< series_multiply, U, series_relaxed< W > >::ser_mul(), implementation< series_multiply, U, series_naive >::ser_mul(), implementation< series_multiply, U, series_fast >::ser_mul(), implementation< series_multiply, U, series_carry_relaxed< W > >::ser_mul(), implementation< series_multiply, U, series_carry_lift< W > >::ser_mul(), implementation< series_multiply, U, series_carry_naive >::ser_mul(), implementation< series_multiply, U, series_carry_blocks< W, s, BV, t > >::ser_mul(), implementation< series_multiply, U, series_carry_monoblock< W, s, BV, t > >::ser_mul(), implementation< series_multiply, U, series_carry_modular_int_naive< W > >::ser_mul(), implementation< series_divide, U, series_naive >::ser_quo(), implementation< series_divide, U, series_naive >::ser_rdiv_sc(), implementation< series_divide, U, series_carry_naive >::ser_rdiv_sc(), implementation< series_divide, U, series_naive >::ser_rquo_sc(), implementation< series_divide, U, series_naive >::ser_rrem_sc(), implementation< series_multiply, U, series_relaxed< W > >::ser_truncate_mul(), implementation< series_multiply, U, series_naive >::ser_truncate_mul(), implementation< series_multiply, U, series_fast >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_relaxed< W > >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_lift< W > >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_naive >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_blocks< W, s, BV, t > >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_monoblock< W, s, BV, t > >::ser_truncate_mul(), implementation< series_multiply, U, series_carry_modular_int_naive< W > >::ser_truncate_mul(), shift(), sqrt(), polynomial_series_rep< C, V >::test_exact_zero(), scalar_series_rep< C, V >::test_exact_zero(), series_carry_monoblock_transformer< M, W, s, BV >::to_monoblock(), implementation< series_pth_root, U, series_carry_p_adic< W > >::unsep_root(), and xderive().

                                          {
  return f->test_exact_zero (); }
bool mmx::is_exact_zero ( const unknown< C, V c)

Definition at line 120 of file series_implicit.hpp.

References is_exact_zero().

                           {
  return c->i1 == c->i2 && is_exact_zero (c->b);
}
bool mmx::is_finite ( const matrix< C, V > &  m) [inline]

Definition at line 639 of file matrix.hpp.

References is_a_scalar().

                                             {
  if (is_a_scalar (m)) return is_finite (m.scalar());
  return big<and_is_finite_op> (m); }
bool mmx::is_finite ( const polynomial< C, V > &  p) [inline]

Definition at line 1368 of file polynomial.hpp.

                                                 {
  return big<and_is_finite_op> (p); }
bool mmx::is_fuzz ( const matrix< C, V > &  m) [inline]

Definition at line 648 of file matrix.hpp.

References is_a_scalar(), and is_nan().

                                           {
  if (is_a_scalar (m)) return is_fuzz (m.scalar());
  return !is_nan (m) && big<or_is_fuzz_op> (m); }
bool mmx::is_fuzz ( const polynomial< C, V > &  p) [inline]

Definition at line 1374 of file polynomial.hpp.

References is_nan().

                                               {
  return !is_nan (p) && big<or_is_fuzz_op> (p); }
bool mmx::is_infinite ( const matrix< C, V > &  m) [inline]

Definition at line 645 of file matrix.hpp.

References is_a_scalar(), and is_nan().

                                               {
  if (is_a_scalar (m)) return is_infinite (m.scalar());
  return !is_nan (m) && big<or_is_infinite_op> (m); }
bool mmx::is_infinite ( const polynomial< C, V > &  p) [inline]

Definition at line 1372 of file polynomial.hpp.

References is_nan().

                                                   {
  return !is_nan (p) && big<or_is_infinite_op> (p); }
V bool mmx::is_known ( const unknown< C, V > &  c) [inline]

Definition at line 84 of file series_implicit.hpp.

Referenced by subst_mul_series_rep< C, V, UV >::next().

                       {
  return c->i2 == c->i1;
}
bool mmx::is_nan ( const matrix< C, V > &  m) [inline]

Definition at line 642 of file matrix.hpp.

References is_a_scalar().

Referenced by is_fuzz(), and is_infinite().

                                          {
  if (is_a_scalar (m)) return is_nan (m.scalar());
  return big<or_is_nan_op> (m); }
bool mmx::is_nan ( const polynomial< C, V > &  p) [inline]

Definition at line 1370 of file polynomial.hpp.

                                              {
  return big<or_is_nan_op> (p); }
bool mmx::is_non_scalar ( const matrix< C, matrix_fixed< V, RS, CS > > &  m) [inline]

Definition at line 300 of file matrix.hpp.

{ (void) m; return true; }
bool is_non_scalar ( const matrix< C, V > &  m) [inline]
bool is_prime ( nat  n)

Definition at line 17 of file crt_int.cpp.

Referenced by fft_prime_sequence_int< s >::extend().

                      {
  static coprime_moduli_sequence
    <modulus<nat,modulus_int_naive<8*sizeof(nat)> >,prime_sequence_int> seq;
  if (n == 0 || n == 1) return false;
  for (nat i= 0; true; i++) {
    nat p= * seq[i];
    if (n % p == 0) return false;
    if (p * p >= n) break;
  }
  return true;
}
bool is_probable_prime ( unsigned long int  n)

Definition at line 29 of file crt_int.cpp.

                                             {
  return is_probable_prime (integer (n));
}
bool mmx::is_reliable ( const polynomial< C, V > &  p) [inline]

Definition at line 1376 of file polynomial.hpp.

References CF(), and is_reliable().

                                                   {
  return is_reliable (promote (0, CF(p))); }
bool mmx::is_reliable ( const matrix< C, V > &  m) [inline]

Definition at line 651 of file matrix.hpp.

References is_a_scalar().

Referenced by is_reliable().

                                               {
  if (is_a_scalar (m)) return is_reliable (m.scalar());
  return is_reliable (C (0)); }
bool mmx::is_square_matrix ( const matrix< C, V > &  m) [inline]

Definition at line 186 of file matrix.hpp.

References cols(), and rows().

Referenced by bareiss_krylov(), krylov(), solve_lde(), and solve_lde_init().

                                                    {
  return rows (m) == cols (m); }
bool mmx::is_zero ( const algebraic_number_extension< C, Ball > &  ext,
const typename algebraic_number_extension< C, Ball >::El &  p1 
) [inline]

Definition at line 257 of file algebraic_number.hpp.

References annihilator(), deg(), derive(), eval(), is_zero(), and Polynomial.

                                              {
  if (deg (p1) <= 0) return is_zero (ext.ext, p1);
  Ball y= eval (ext, p1);
  if (is_non_zero (y)) return false;
  Polynomial ann= annihilator (ext, p1);
  if (ann[0] == 0 && is_non_zero (eval (derive (ann), y))) return true;
  nat old_precision= mmx_bit_precision;
  mmx_bit_precision *= 2;
  bool r= is_zero (ext, p1);
  mmx_bit_precision= old_precision;
  return r;
}
bool mmx::is_zero ( const algebraic< C, Extension > &  x) [inline]

Definition at line 122 of file algebraic.hpp.

References field(), and value().

Referenced by is_zero(), operator!=(), and operator==().

                                              {
  return is_zero (field (x), value (x)); }
bool mmx::is_zero ( const algebraic_extension< C > &  ext,
const typename algebraic_extension< C >::El &  p1 
) [inline]

Definition at line 125 of file algebraic_extension.hpp.

References deg().

                                                  {
  return deg (p1) < 0;
}
iterator<nat> mmx::iterate ( const permutation &  p) [inline]

Definition at line 59 of file permutation.hpp.

References as_vector(), and iterate().

                                                    {
  return iterate (as_vector (p)); }
iterator<C> mmx::iterate ( const matrix< C, V > &  m)
Examples:
matrix_test.cpp, polynomial_test.cpp, and vector_simd_test.cpp.

Definition at line 328 of file matrix.hpp.

References is_non_scalar().

Referenced by flatten(), GLUE_10(), GLUE_106(), GLUE_21(), GLUE_3(), GLUE_4(), GLUE_5(), GLUE_56(), GLUE_7(), GLUE_79(), GLUE_8(), GLUE_9(), iterate(), and iterate_int().

                          {
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  return iterator<C> (new matrix_iterator_rep<C,V> (m));
}
iterator<C> mmx::iterate ( const polynomial< C, V > &  P)

Definition at line 292 of file polynomial.hpp.

                              {
  return iterator<C> (new polynomial_iterator_rep<C,V> (P));
}
iterator<C> mmx::iterate ( const series< C, V > &  f)

Definition at line 264 of file series.hpp.

                          {
  return iterator<C> (new series_iterator_rep<C,V> (f));
}
iterator<int> mmx::iterate_int ( const permutation &  p) [inline]

Definition at line 61 of file permutation.hpp.

References iterate().

Referenced by GLUE_6().

                                                        {
  return iterate (as_vector_int (p)); }
algebraic_extension<C> mmx::join ( const algebraic_extension< C > &  ext1,
const algebraic_extension< C > &  ext2,
typename algebraic_extension< C >::El &  z1,
typename algebraic_extension< C >::El &  z2 
)

Definition at line 238 of file algebraic_extension.hpp.

References CF(), column(), deg(), Element, Extension, hard_eq(), invert(), N(), Polynomial, pow_matrix(), range(), rem(), square_free(), and transpose().

Referenced by upgrade().

                                                                              {
  // Return the smallest common extension ext of ext1 and ext2
  // On exit, z1 and z2 contains the primitive els of ext1 and ext2 inside ext
  ASSERT (N(ext1.mp) > 0, "uninitialized algebraic extension");
  ASSERT (N(ext2.mp) > 0, "uninitialized algebraic extension");
  if (deg (ext1.mp) == 1) {
    z1= Polynomial (-ext1.mp[0]/ext1.mp[1]);
    z2= Polynomial (promote (1, CF(ext1)), (nat) 1);
    return ext2;
  }
  else if (deg (ext2.mp) == 1) {
    z1= Polynomial (promote (1, CF(ext1)), (nat) 1);
    z2= Polynomial (-ext2.mp[0]/ext2.mp[1]);
    return ext1;
  }
  else if (hard_eq (ext1, ext2)) {
    z1= Polynomial (promote (1, CF(ext1)), (nat) 1);
    z2= Polynomial (promote (1, CF(ext1)), (nat) 1);
    return ext1;
  }
  else {
    nat n= deg (ext1.mp) * deg (ext2.mp);
    matrix<C> m= transpose (pow_matrix (ext1, ext2));
    matrix<C> u= invert (range (m, 0, 0, n, n));
    vector<C> v= - (u * column (m, n));
    v << promote (1, CF(ext1));
    Polynomial mp= Polynomial (v);
    Polynomial sf= square_free (mp);
    Extension ext= Extension (sf);
    v= fill<C> (promote (0, CF(ext1)), n);
    v[deg(ext2.mp)]= promote (1, CF(ext1));
    z1= Element (u * v);
    if (deg (sf) < deg (mp)) z1= rem (z1, sf);
    v= fill<C> (promote (0, CF(ext1)), n);
    v[1]= promote (1, CF(ext1));
    z2= Element (u * v);
    if (deg (sf) < deg (mp)) z2= rem (z2, sf);
    return ext;
  }
}
algebraic_number_extension<C,Ball> mmx::join ( const algebraic_number_extension< C, Ball > &  ext1,
const algebraic_number_extension< C, Ball > &  ext2,
typename algebraic_number_extension< C, Ball >::El &  z1,
typename algebraic_number_extension< C, Ball >::El &  z2 
)

Definition at line 289 of file algebraic_number.hpp.

References C, column(), deg(), Element, eval(), Extension, Field, hard_eq(), invert(), Polynomial, pow_matrix(), range(), rem(), shrink(), square_free(), and transpose().

                                                                      {
  // Return the smallest common extension ext of ext1 and ext2
  // On exit, z1 and z2 contains the primitive els of ext1 and ext2 inside ext
  if (deg (ext1.ext.mp) == 1) {
    z1= Polynomial (-ext1.ext.mp[0]/ext1.ext.mp[1]);
    z2= Polynomial (C(1), (nat) 1);
    return ext2;
  }
  else if (deg (ext2.ext.mp) == 1) {
    z1= Polynomial (C(1), (nat) 1);
    z2= Polynomial (-ext2.ext.mp[0]/ext2.ext.mp[1]);
    return ext1;
  }
  else if (hard_eq (ext1, ext2)) {
    z1= Polynomial (C(1), (nat) 1);
    z2= Polynomial (C(1), (nat) 1);
    return ext1;
  }
  else {
    nat n= deg (ext1.ext.mp) * deg (ext2.ext.mp);
    matrix<C> m= transpose (pow_matrix (ext1.ext, ext2.ext));
    matrix<C> u= invert (range (m, 0, 0, n, n));
    vector<C> v= - (u * column (m, n));
    v << C(1);
    Polynomial mp= Polynomial (v);
    Polynomial sf= square_free (mp);
    Extension ext= Extension (sf);
    v= fill<C> (C(0), n);
    v[deg(ext2.ext.mp)]= C(1);
    z1= Element (u * v);
    if (deg (sf) < deg (mp)) z1= rem (z1, sf);
    v= fill<C> (C(0), n);
    v[1]= C(1);
    z2= Element (u * v);
    if (deg (sf) < deg (mp)) z2= rem (z2, sf);
    Ball x;
    nat old_precision= mmx_bit_precision;
    while (true) {
      x= eval (ext1, ext2, column (m, 1));
      if (shrink (ext.mp, x)) break;
      mmx_bit_precision= mmx_bit_precision << 1;
    }
    mmx_bit_precision= old_precision;
    return Field (ext, x);
  }
}
matrix<C> mmx::jordan_matrix ( const C &  c,
const int &  n 
)

Definition at line 741 of file matrix.hpp.

Referenced by GLUE_18(), GLUE_21(), GLUE_35(), and GLUE_80().

                                         {
  matrix<C> m (c, n, n);
  for (nat i=0; i<((nat) (n-1)); i++)
    m (i, i+1)= promote (1, c);
  return m;
}
matrix<C,V> mmx::kernel ( const matrix< C, V > &  m)
Examples:
matrix_test.cpp, and pivot_test.cpp.

Definition at line 1171 of file matrix.hpp.

References CF(), cols(), is_non_scalar(), Matrix, range(), rows(), and tab().

Referenced by GLUE_109(), GLUE_39(), and GLUE_64().

                         {
  typedef implementation<matrix_kernel,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix k (promote (0, CF(m)), cols(m), cols(m));
  nat dim= Mat::kernel (tab(k), tab(m), rows(m), cols(m));
  return range (k, 0, 0, cols(m), dim);
}
C mmx::known ( const unknown< C, V > &  c) [inline]

Definition at line 89 of file series_implicit.hpp.

Referenced by known_series_rep< C, V, UV >::next(), operator*(), operator+(), and operator-().

                    {
  ASSERT (c->i2 == c->i1, "cast failed");
  return c->b;
}
series<C,V> mmx::known ( const series< unknown< C, V >, UV > &  f)

Definition at line 365 of file series_implicit.hpp.

References Series_rep.

                               {
  return (Series_rep*) new known_series_rep<C,V,UV> (f);
}
matrix<C,V> mmx::krylov ( const matrix< C, V > &  m,
const matrix< C, V > &  v 
)

Definition at line 1196 of file matrix.hpp.

References image(), is_non_scalar(), is_square_matrix(), Matrix, rows(), and vertical_join().

Referenced by GLUE_100(), GLUE_30(), and GLUE_55().

                                          {
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  ASSERT (is_square_matrix (m), "square matrix expected");
  Matrix r= image (v);
  Matrix p= m;
  while (true) {
    nat rk= rows (r);
    r= image (vertical_join (r, r*p));
    if (rows (r) <= rk) return r;
    p= p*p;
  }
}
series<C,V> mmx::lcm ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 796 of file series.hpp.

References Series_rep.

                                       {
  return (Series_rep*) new lcm_series_rep<C,V> (f, g);
}
polynomial<C,V> mmx::lcm ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
) [inline]
Examples:
polynomial_int_test.cpp, polynomial_integer_test.cpp, polynomial_modular_test.cpp, and polynomial_polynomial_test.cpp.

Definition at line 828 of file polynomial.hpp.

Referenced by lcm_series_rep< C, V >::expression(), GLUE_132(), GLUE_26(), GLUE_35(), GLUE_41(), and GLUE_49().

                                                 {
  typedef implementation<polynomial_gcd,V> Pol;
  return Pol::lcm (P1, P2);
}
series<C,V> mmx::log ( const series< C, V > &  f) [inline]
Examples:
series_test.cpp.

Definition at line 45 of file series_elementary.hpp.

Referenced by GLUE_36(), GLUE_51(), pow(), and ramify().

                      {
  return unary_recursive_series<log_op> (f);
}
series<C,V> mmx::log_init ( const series< C, V > &  f,
const C &  c 
) [inline]
Examples:
series_test.cpp.

Definition at line 50 of file series_elementary.hpp.

                                       {
  return unary_recursive_series<log_op> (f, c);
}
polynomial<Center_type(C),V> mmx::lower ( const polynomial< C, V > &  p)

Definition at line 1402 of file polynomial.hpp.

                                                   {
  return unary_map<lower_op> (p); }
matrix<Center_type(C),V> mmx::lower ( const matrix< C, V > &  m)

Definition at line 678 of file matrix.hpp.

                                           {
  return unary_map<lower_op> (m); }
polynomial<C,V> mmx::lshiftz ( const polynomial< C, V > &  P,
const int &  shift 
)
Examples:
fast_series_test.cpp, and series_test.cpp.

Definition at line 1235 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, range(), seg(), and shift().

Referenced by ser_carry_separable_root_op::binpow_no_tangent(), ser_carry_pth_root_reg_op::binpow_no_tangent_normalized(), ser_carry_pth_root_reg_op::def(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_ducos_inc< BV > >::defected_prem(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_naive_inc< W > >::defected_prem(), lshiftz_series_vector_rep< C, V, W >::expression(), lshiftz_series_matrix_rep< C, V, U >::expression(), lshiftz_series_rep< C, V >::expression(), GLUE_124(), GLUE_14(), GLUE_20(), GLUE_21(), GLUE_27(), GLUE_28(), GLUE_72(), GLUE_98(), implementation< series_compose, U, series_naive >::reverse_series_rep< C, V >::initialize(), implementation< series_divide, U, series_carry_naive >::div_series_rep< M, V >::initialize(), implementation< polynomial_gcd, X, polynomial_series< BV > >::inv_mod_polynomial_series_rep< C, U, V, W >::initialize(), implementation< matrix_multiply, V, matrix_balanced< W > >::mat_lshift(), minimal_polynomial_bis(), implementation< series_multiply, U, series_carry_blocks< W, s, BV, t > >::mul_series_rep< M, V >::mul_series_rep(), normalize(), rec_prod(), rec_square(), shift1(), shift2(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::tinterpolate(), and implementation< series_pth_root, U, series_carry_p_adic< W > >::unsep_root().

                                                {
  typedef implementation<polynomial_linear,V> Pol;
  if (shift == 0) return P;
  else if (shift <= -((int) N(P))) return promote (0, P);
  else if (shift < 0) return range (P, (nat) (-shift), N(P));
  else {
    nat n= N(P) + shift;
    nat l= aligned_size<C,V> (n);
    C* r= mmx_formatted_new<C> (l, CF(P));
    Pol::copy (r+shift, seg (P), N(P));
    return Polynomial (r, n, l, CF(P));
  }
}
series< C, V > lshiftz ( const series< C, V > &  f,
const int &  shift = 1 
) [inline]

Definition at line 821 of file series.hpp.

References CF(), is_exact_zero(), Series, Series_rep, and shift().

                                            {
  if (is_exact_zero (f)) return Series (CF(f));
  return (Series_rep*) new lshiftz_series_rep<C,V> (f, shift);
}
series< matrix<C,U> ,V> mmx::lshiftz_series_matrix ( const series< matrix< C, U >, V > &  f,
const nat &  r,
const nat &  c,
const int &  shift = 1 
) [inline]

Definition at line 146 of file series_matrix.hpp.

References as_series(), CF(), is_exact_zero(), Matrix_series, Series, and shift().

Referenced by ldiv_mat_mat_series_rep< C, V, U >::initialize(), and ldiv_sc_mat_mat_series_rep< C, V, U, UU >::initialize().

                                           {
  if (is_exact_zero (f)) {
    Series zero (get_format1 (CF(f)));
    return as_series (Matrix_series (zero, r, c));
  }
  return (series_rep<Matrix,V>*) 
    new lshiftz_series_matrix_rep<C,V,U> (f, r, c, shift);
}
series< vector<C,W> ,V> mmx::lshiftz_series_vector ( const series< vector< C, W >, V > &  f,
const nat &  n,
const int &  shift = 1 
) [inline]

Definition at line 152 of file series_vector.hpp.

References as_series(), CF(), is_exact_zero(), Series, shift(), and Vector_series.

Referenced by ldiv_mat_series_rep< C, V, W, U >::initialize(), ldiv_sc_mat_series_rep< C, V, W, U >::initialize(), rec_prod(), and rec_square().

                                           {
  if (is_exact_zero (f)) {
    Series zero (get_format1 (CF(f)));
    return as_series (Vector_series (zero, n));
  }
  return (series_rep<Vector,V>*) 
    new lshiftz_series_vector_rep<C,V,W> (f, n, shift);
}
double mmx::magnitude ( const matrix< C, V > &  m) [inline]

Definition at line 662 of file matrix.hpp.

                                               {
  return big<max_magnitude_op> (m); }
double mmx::magnitude ( const polynomial< C, V > &  p) [inline]

Definition at line 1386 of file polynomial.hpp.

                                                   {
  return big<max_magnitude_op> (p); }
D matrix<D> mmx::map ( const function_1< D, Argument(S1) > &  fun,
const matrix< S1 > &  m,
const format< D > &  fm 
)

Definition at line 528 of file matrix.hpp.

References cols(), D, rows(), and tab().

Referenced by map().

{
  nat n= rows(m) * cols(m);
  nat l= default_aligned_size<D> (n);
  D* r= mmx_formatted_new<D> (l, fm);
  const S1* src= tab (m);
  for (nat i=0; i<n; i++) r[i]= fun (src[i]);
  return matrix<D> (r, rows(m), cols(m), fm);
}
series<D> mmx::map ( D(*)(const S1 &)  fun,
const series< S1 > &  x1,
const format< D > &  fm 
) [inline]

Definition at line 596 of file series.hpp.

References D, and map().

                                                {
  return map (function_1<D,Argument(S1) > (fun), x1, fm);
}
quotient<D,D> mmx::map ( const function_1< D, Argument(S1) > &  fun,
const quotient< S1, S1 > &  x 
)

Definition at line 124 of file quotient.hpp.

References denominator(), and numerator().

                                                                       {
  return quotient<D,D> (fun (numerator (x)), fun (denominator (x)));
}
quotient<D,D> mmx::map ( D(*)(const S1 &)  fun,
const quotient< S1, S1 > &  x 
)

Definition at line 129 of file quotient.hpp.

References denominator(), and numerator().

                                                     {
  return quotient<D,D> (fun (numerator (x)), fun (denominator (x)));
}
series<D> mmx::map ( const function_1< D, Argument(S1) > &  fun,
const series< S1 > &  f,
const format< D > &  fm 
)

Definition at line 587 of file series.hpp.

References D, and Series_variant.

{
  typedef map_series_rep<D,typename Series_variant(D),
                         S1,typename Series_variant(S1) > Mapper;
  return (series_rep<D>*) new Mapper (fun, f, fm);
}
matrix<D> mmx::map ( D(*)(const S1 &)  fun,
const matrix< S1 > &  x1,
const format< D > &  fm 
) [inline]

Definition at line 540 of file matrix.hpp.

References D, and map().

                                                {
  return map (function_1<D,Argument(S1) > (fun), x1, fm);
}
polynomial<D> mmx::map ( const function_1< D, Argument(S1) > &  fun,
const polynomial< S1 > &  p1,
const format< D > &  fm 
)

Definition at line 1348 of file polynomial.hpp.

References D, and N().

{
  nat n= N(p1);
  nat l= default_aligned_size<D> (n);
  D* r= mmx_formatted_new<D> (l, fm);
  for (nat i=0; i<n; i++) r[i]= fun (p1[i]);
  return polynomial<D> (r, n, l, fm);
}
polynomial<D> mmx::map ( D(*)(const S1 &)  fun,
const polynomial< S1 > &  p1,
const format< D > &  fm 
) [inline]

Definition at line 1359 of file polynomial.hpp.

References D, and map().

                                                    {
  return map (function_1<D,Argument(S1) > (fun), p1, fm);
}
static vector< series<C,V> ,W> mmx::matrix_mul_nocarry ( const matrix< C, U > &  mat,
const vector< series< C, V >, W > &  v 
) [inline, static]

Definition at line 218 of file series_vector.hpp.

References D, Series_variant, and W.

                                                               {
  typedef typename Series_variant(D) SV;
  return as<vector<Series, W> > (as<matrix<series<C,SV>, U> > (mat) * 
                                 as<vector<series<C,SV>, W> > (v));
}
static matrix< series<C,V> ,U> mmx::matrix_mul_nocarry ( const matrix< C, UU > &  mat,
const matrix< series< C, V >, U > &  m 
) [inline, static]

Definition at line 189 of file series_matrix.hpp.

References D, and Series_variant.

Referenced by ldiv_sc_mat_series_rep< C, V, W, U >::initialize(), and ldiv_sc_mat_mat_series_rep< C, V, U, UU >::initialize().

                                                                     {
  typedef typename Series_variant(D) SV;
  return as<Matrix_series> (as<matrix<series<C,SV>, U> > (mat) * 
                            as<matrix<series<C,SV>, U> > (m));
}
static vector< series<C,V> ,W> mmx::matrix_mul_quo ( const matrix< C, U > &  mat,
const vector< series< C, V >, W > &  v 
) [static]

Definition at line 292 of file series_vector.hpp.

References C, carry_add_rem(), carry_mul_rem_series(), carry_special_add(), CF(), cols(), is_a_scalar(), is_non_scalar(), N(), rows(), Series, and Vector_series.

                                                           {
  nat m= rows(mat), n= cols(mat);
  ASSERT (N(v) == n, "sizes don't match");
  if (is_a_scalar (mat)) return as<Series> (mat.scalar()) * v;
  ASSERT (is_non_scalar (v), "non-scalar vector expected");
  Series zero (get_format1 (CF(v)));
  Vector_series w (zero, m);
  Series mr, mq, c, ar, aq;
  for (nat k=0; k < m; k++) {
    mr = carry_mul_rem_series (mat(k,0), v[0], mq);
    c  = mq;
    ar = mr;
    for (nat l=1; l < n; l++) {
      if (mat (k,l) == C(0)) {
        mr = zero;
        mq = zero;
        aq = zero;
        continue;
      }
      mr = carry_mul_rem_series (mat(k,l), v[l], mq);
      ar = carry_add_rem (ar, mr, aq);
      c  = carry_special_add (c, mq, aq);  
    }
    w[k] = c;
  }
  return w;
}
static matrix< series<C,V> ,U> mmx::matrix_mul_quo ( const matrix< C, UU > &  Mat,
const matrix< series< C, V >, U > &  ma 
) [static]

Definition at line 197 of file series_matrix.hpp.

References carry_add_rem(), carry_mul_rem_series(), carry_special_add(), CF(), cols(), is_a_scalar(), is_exact_zero(), is_non_scalar(), Matrix, Matrix_series, rows(), and Series.

Referenced by ldiv_sc_mat_series_rep< C, V, W, U >::initialize(), and ldiv_sc_mat_mat_series_rep< C, V, U, UU >::initialize().

                                                                  {
  Matrix mat= as<Matrix> (Mat);
  nat m= rows(mat), n= cols(mat);
  ASSERT (rows(ma) == n, "sizes don't match");
  if (is_a_scalar (mat)) return as<Series> (mat.scalar()) * ma;
  ASSERT (is_non_scalar (ma), "non-scalar matrix expected");
  Series zero (CF(Mat));
  Matrix_series w (zero, m, cols(ma));
  Series mr, mq, c, ar, aq;
  for (nat k=0; k < m; k++) 
    for (nat j=0; j < cols(ma); j++) {
      mr = carry_mul_rem_series (mat(k,0), ma(0,j), mq);
      c  = mq;
      ar = mr;
      for (nat l=1; l < n; l++) {
        if (is_exact_zero (mat (k,l))) {
          mr = zero;
          mq = zero;
          aq = zero;
          continue;
        }
        mr = carry_mul_rem_series (mat(k,l), ma(l,j), mq);
        ar = carry_add_rem (ar, mr, aq);
        c  = carry_special_add (c, mq, aq);  
      }
      w(k,j) = c;
    }
  return w;
}
matrix< C > matrix_new ( const vector< row_tuple< C > > &  t)

Definition at line 24 of file glue_matrix_generic.cpp.

References C, cols(), N(), and rows().

Referenced by GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_3(), GLUE_4(), GLUE_5(), GLUE_6(), GLUE_7(), and GLUE_8().

                                              {
    if (N(t) == 0) return matrix<C> ();
    nat i, j, rows= N(t), cols= N(t[0]);
    C dummy= 0;
    matrix<C> r (dummy, rows, cols);
    for (i=0; i<rows; i++) {
      ASSERT (N(t[i]) == cols, "unequal row lengths");
      for (j=0; j<cols; j++)
        r(i,j)= t[i][j];
    }
    return r;
  }
matrix< C > matrix_new ( const vector< C > &  t)

Definition at line 38 of file glue_matrix_generic.cpp.

References C, cols(), N(), and rows().

                                  {
    nat j, rows= 1, cols= N(t);
    C dummy= 0;
    matrix<C> r (dummy, rows, cols);
    for (j=0; j<cols; j++)
      r(0,j)= t[j];
    return r;
  }
xnat matrix_product_bit_size ( const integer *  s1,
nat  s1_rs,
nat  s1_cs,
const integer *  s2,
nat  s2_rs,
nat  s2_cs,
nat  r,
nat  l,
nat  c 
)

Definition at line 18 of file matrix_integer.cpp.

Referenced by matrix_crt_multiply_helper< integer >::size().

{
  double count= 1.0;
  xnat   sz   = 0;
  // NOTE: the largest integer in the result will be bounded by
  // count * 2^sz at the end. The bound is computed carefully,
  // so as to be both fast and relatively sharp.
  for (nat k=0; k<l; k++) {
    xnat sz1= 0, sz2= 0;
    const integer* ss1= s1 + k * s1_cs;
    const integer* ss2= s2 + k * s2_rs;
    for (nat i=0; i<r; i++, ss1 += s1_rs)
      sz1= max (sz1, bit_size (*ss1));
    for (nat j=0; j<c; j++, ss2 += s2_cs)
      sz2= max (sz2, bit_size (*ss2));
    xnat szs= sz1 + sz2;
    if (szs > sz) {
      if (szs >= sz + 30) {
        count= (count / 1.0e9) + 1.000000001;
        sz   = szs;
      }
      else {
        count= (count / ((double) (1 << (szs - sz)))) + 1.000000001;
        sz   = szs;
      }
    }
    else {
      if (sz >= szs + 30) count += 1.0e-9;
      else count += 1.000000001 / ((double) (1 << (sz - szs)));
    }
  }
  return sz + ((xnat) logb (count)) + 1;
}
xnat max_bit_size ( const integer *  src,
nat  n 
)

Definition at line 113 of file kronecker_integer.cpp.

Referenced by mul_kronecker(), and square_kronecker().

                                              {
  xnat m= 0;
  for (nat i=0; i<n; i++)
    m= max (m, bit_size (src[i]));
  return m;
}
nat mmx::max_polynomial_size ( const polynomial< C, V > *  src,
nat  n 
)

Definition at line 26 of file kronecker_polynomial.hpp.

References N().

Referenced by div_kronecker(), mul_kronecker(), and square_kronecker().

                                                   {
  nat m= 0;
  for (nat i= 0; i < n; i++) m= max (N(src[i]), m);
  return m;
}
polynomial<C,typename polynomial_variant_helper< C >::PV > mmx::minimal_polynomial ( const vector< C, W > &  v) [inline]

Definition at line 859 of file polynomial.hpp.

References minimal_polynomial_bis().

                                          {
  polynomial<C,typename Polynomial_variant(C) > P;
  minimal_polynomial_bis (P, v);
  return P;
}
void mmx::minimal_polynomial_bis ( polynomial< C, V > &  p,
const vector< C, W > &  v 
) [inline]

Definition at line 846 of file polynomial.hpp.

References deg(), lshiftz(), N(), pade(), Polynomial, and reverse().

Referenced by minimal_polynomial().

                                                             {
  // p is the minimal polynomial of the sequence of the elements in v
  // Algorithm 12.19 of "Modern Computer Algebra"
  nat n= N(v); nat k= n >> 1;
  ASSERT ((n & 1) == 0, "even size expected");
  Polynomial h (v), s, t;
  pade (h, n, k, s, t);
  t= reverse (t);
  p= (deg(t) < 1 + deg(s)) ? lshiftz (t, 1 + deg (s) - deg (t)) : t;
}
static mmx::mmx_ball ( mmx_floating  ,
mmx_floating   
) const [static]

Definition at line 60 of file glue_algebraic_number.cpp.

References as_ball().

                                       {
    return as_ball (arg_1);
  }
static mmx::mmx_ball ( mmx_floating  ,
complex< mmx_floating >   
) const [static]

Definition at line 205 of file glue_algebraic_number.cpp.

References as_ball().

                                          {
    return as_ball (arg_1);
  }
static mmx::mmx_modular ( integer  ) const [static]

Referenced by GLUE_5(), and GLUE_6().

static mmx::mmx_modular ( int  ) const [static]
modulus< typename Crter::base , typename Crter::modulus_variant> mmx::moduli_product ( Crter &  crter) [inline]
Monomial mmx::monomial_val ( const quotient_series< Series, Monomial >  f) [inline]

Definition at line 119 of file quotient_series.hpp.

Referenced by operator/().

                                                            {
  return monomial_val (f->f) * f->m; }
algebraic_number_extension<C,Ball>::El mmx::mul ( const algebraic_number_extension< C, Ball > &  ext,
const typename algebraic_number_extension< C, Ball >::El &  p1,
const typename algebraic_number_extension< C, Ball >::El &  p2 
) [inline]

Definition at line 237 of file algebraic_number.hpp.

References mul().

                                                             {
  return mul (ext.ext, p1, p2);
}
algebraic_extension<C>::El mmx::mul ( const algebraic_extension< C > &  ext,
const typename algebraic_extension< C >::El &  p1,
const typename algebraic_extension< C >::El &  p2 
) [inline]

Definition at line 102 of file algebraic_extension.hpp.

References rem().

Referenced by implementation< polynomial_evaluate, V, polynomial_naive >::annulator(), implementation< polynomial_compose, V, polynomial_naive >::compose(), fft_mul(), roots_triadic_helper< CC, UU, SS >::fft_shift(), fft_simd_transformer< C, FFTER, FFTER_SIMD, thr >::inverse_transform(), fft_triadic_threads_transformer< C, FFTER, thr >::inverse_transform_triadic(), implementation< matrix_invert, V, matrix_naive >::invert(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::invert_hi(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::invert_lo(), implementation< matrix_iterate, V, matrix_naive >::iterate_mul(), multiplier< modular< modulus< C, modulus_int_preinverse< size > >, V > >::lmul(), implementation< polynomial_multiply, V, polynomial_balanced_tft< W > >::mul(), implementation< polynomial_multiply, V, polynomial_tft_inc< W, Th > >::mul(), implementation< polynomial_multiply, V, polynomial_tangent< CV > >::mul(), implementation< polynomial_multiply, V, polynomial_schonhage_inc< W, Th, Th_rec > >::mul(), implementation< polynomial_multiply, V, polynomial_quotient< W > >::mul(), implementation< polynomial_multiply, V, polynomial_modular< W > >::mul(), implementation< polynomial_multiply, V, polynomial_kronecker< W > >::mul(), implementation< polynomial_multiply, V, polynomial_complex< CV > >::mul(), implementation< polynomial_multiply, V, polynomial_balanced< W > >::mul(), implementation< matrix_multiply, V, matrix_quotient< W > >::mul(), implementation< matrix_multiply, V, matrix_crt< W > >::mul(), implementation< matrix_multiply, V, matrix_complex< CV > >::mul(), implementation< matrix_multiply, V, matrix_balanced< W > >::mul(), implementation< matrix_multiply_base, Z, matrix_assume_aligned< V, W > >::mul(), mul(), implementation< polynomial_multiply, V, polynomial_schonhage_strassen_inc< W, Th > >::mul_negative_cyclic(), implementation< polynomial_multiply, V, polynomial_schonhage_strassen_inc< W, Th > >::mul_negative_cyclic_truncated(), implementation< polynomial_vectorial, V, polynomial_naive >::mul_sc(), implementation< polynomial_multiply, V, polynomial_schonhage_triadic_inc< W, Th > >::mul_triadic(), implementation< polynomial_multiply, V, polynomial_karatsuba< W > >::multiply(), implementation< series_multiply, U, series_relaxed< W > >::mul_series_rep< C, V >::next(), operator*(), implementation< polynomial_euclidean, V, polynomial_dicho< BV > >::pade(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::pinvert_hi(), implementation< polynomial_divide, V, polynomial_ring_dicho_inc< W > >::pquo_rem(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::pquo_rem(), implementation< matrix_iterate, V, matrix_naive >::project_iterate_mul(), implementation< polynomial_divide, V, polynomial_ring_dicho_inc< W > >::quo_rem(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::quo_rem(), multiplier< modular< modulus< C, modulus_int_preinverse< size > >, V > >::rmul(), implementation< polynomial_multiply, V, polynomial_schonhage_strassen_inc< W, Th > >::negative_cyclic_roots_helper< Cp >::fft_mul_sc_op::set_op(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::shift(), implementation< polynomial_multiply, V, polynomial_unrolled< W, m > >::square(), implementation< polynomial_multiply, V, polynomial_tft_inc< W, Th > >::square(), implementation< polynomial_multiply, V, polynomial_tangent< CV > >::square(), implementation< polynomial_multiply, V, polynomial_schonhage_inc< W, Th, Th_rec > >::square(), and implementation< polynomial_evaluate, V, polynomial_naive >::tevaluate().

                                                                 {
  return rem (p1 * p2, ext.mp);
}
void mmx::mul_complete ( D *  dest,
const S1 *  src1,
const S2 *  src2,
nat  r,
nat  rr,
nat  l,
nat  ll,
nat  c,
nat  cc,
nat  hr,
nat  hl,
nat  hc 
)

Definition at line 44 of file matrix_unrolled.hpp.

{
  typedef implementation<matrix_multiply,V> Mat;
  typedef typename Op::acc_op Acc;
  if (hr < r && hl != 0 && hc != 0)
    Mat::template mul<Op > (dest + Mat::index (hr, 0, rr, cc),
                            src1 + Mat::index (hr, 0, rr, ll),
                            src2,
                            r-hr, rr, hl, ll, hc, cc);
  if (hc < c && hl != 0)
    Mat::template mul<Op > (dest + Mat::index (0, hc, rr, cc),
                            src1,
                            src2 + Mat::index (0, hc, ll, cc),
                            r , rr, hl, ll, c-hc, cc);
  if (hl < l)
    Mat::template mul<Acc> (dest,
                            src1 + Mat::index (0, hl, rr, ll),
                            src2 + Mat::index (hl, 0, ll, cc),
                            r , rr, l-hl, ll, c , cc);
}
void mul_kronecker ( unsigned short int *  dest,
const unsigned short int *  src1,
nat  n1,
const unsigned short int *  src2,
nat  n2 
)

Definition at line 184 of file kronecker_int.cpp.

{
void mmx::mul_kronecker ( signed short int *  dest,
const signed short int *  src1,
nat  n1,
const signed short int *  src2,
nat  n2 
)

Definition at line 183 of file kronecker_int.cpp.

{
void mul_kronecker ( signed char *  dest,
const signed char *  src1,
nat  n1,
const signed char *  src2,
nat  n2 
)
void mmx::mul_kronecker ( modular< modulus< I, MoV >, MaV > *  dest,
const modular< modulus< I, MoV >, MaV > *  s1,
nat  n1,
const modular< modulus< I, MoV >, MaV > *  s2,
nat  n2 
) [inline]

Definition at line 51 of file kronecker_modular_int.hpp.

References I, and mul_kronecker_mod().

                                                                  {
  mul_kronecker_mod ((I*) (void*) dest,
                     (const I*) (const void*) s1, n1,
                     (const I*) (const void*) s2, n2, 
                     * C::get_modulus());
}
void mmx::mul_kronecker ( short int *  dest,
const short int *  src1,
nat  n1,
const short int *  src2,
nat  n2 
)
void mul_kronecker ( unsigned char *  dest,
const unsigned char *  src1,
nat  n1,
const unsigned char *  src2,
nat  n2 
)

Definition at line 182 of file kronecker_int.cpp.

{
void mul_kronecker ( integer *  dest,
const integer *  src1,
nat  n1,
const integer *  src2,
nat  n2 
)

Definition at line 121 of file kronecker_integer.cpp.

References decode_kronecker(), encode_kronecker(), and max_bit_size().

{
  /*
  mmout << "n1= " << n1 << ", " << "n2= " << n2 << "\n";
  for (nat i=0; i<n1; i++)
    mmout << "  s" << i << "\t" << src1[i] << "\n";
  for (nat i=0; i<n2; i++)
    mmout << "  t" << i << "\t" << src2[i] << "\n";
  */
  if (n1 == 0 && n2 == 0) return;
  for (nat i= 0; i < n1 + n2 - 1; i++) dest[i]= 0;
  while (n1 > 0 && src1[n1-1] == 0) n1--;
  while (n2 > 0 && src2[n2-1] == 0) n2--;
  if (n1 == 0 || n2 == 0) return;
  
  xnat bits1= max_bit_size (src1, n1);
  xnat bits2= max_bit_size (src2, n2);
  xnat bits= bits1 + bits2 + bit_size (integer (min (n1, n2))) + 1;
  integer aux1, aux2;
  //mmout << "Encoding\n";
  //nat start= mmx_time ();
  encode_kronecker (aux1, src1, n1, bits);
  encode_kronecker (aux2, src2, n2, bits);
  //mmout << "Done in " << mmx_time () - start << "ms\n";
  //mmout << "Multiplying\n";
  //start= mmx_time ();
  integer aux= aux1*aux2;
  //mmout << "Done in " << mmx_time () - start << "ms\n";
  //mmout << "Decoding\n";
  //start= mmx_time ();
  decode_kronecker (dest, n1+n2-1, bits, aux);
  //mmout << "Done in " << mmx_time () - start << "ms\n";

  /*
  integer* dest1= mmx_new<integer> (n1+n2-1);
  decode_kronecker_naive (dest1, n1+n2-1, bits, aux);
  decode_kronecker (dest, n1+n2-1, bits, aux);
  for (nat i=0; i<n1+n2-1; i++) {
    mmout << "naive\t" << i << "\t" << dest1[i] << "\n";
    mmout << "fast\t" << i << "\t" << dest[i] << "\n";
  }
  mmx_delete<integer> (dest1, n1+n2-1);
  */
}
void mul_kronecker ( int *  dest,
const int *  src1,
nat  n1,
const int *  src2,
nat  n2 
)

Definition at line 185 of file kronecker_int.cpp.

{
void mul_kronecker ( unsigned int *  dest,
const unsigned int *  src1,
nat  n1,
const unsigned int *  src2,
nat  n2 
)

Definition at line 186 of file kronecker_int.cpp.

{
void mul_kronecker ( unsigned long long int *  dest,
const unsigned long long int *  src1,
nat  n1,
const unsigned long long int *  src2,
nat  n2 
)

Definition at line 190 of file kronecker_int.cpp.

{
void mul_kronecker ( long int *  dest,
const long int *  src1,
nat  n1,
const long int *  src2,
nat  n2 
)

Definition at line 187 of file kronecker_int.cpp.

{
void mul_kronecker ( long long int *  dest,
const long long int *  src1,
nat  n1,
const long long int *  src2,
nat  n2 
)

Definition at line 189 of file kronecker_int.cpp.

{
void mul_kronecker ( unsigned long int *  dest,
const unsigned long int *  src1,
nat  n1,
const unsigned long int *  src2,
nat  n2 
)

Definition at line 188 of file kronecker_int.cpp.

{
void mmx::mul_kronecker ( polynomial< C, V > *  dest,
const polynomial< C, V > *  s1,
nat  n1,
const polynomial< C, V > *  s2,
nat  n2 
) [inline]

Definition at line 67 of file kronecker_polynomial.hpp.

References decode_kronecker(), encode_kronecker(), max_polynomial_size(), and Polynomial.

                                             {
  typedef implementation<polynomial_linear,V> Pol;
  if (n1 == 0 || n2 == 0) return;
  if (n1 == 1) { Pol::mul_sc (dest, s2, s1[0], n2); return; }
  if (n2 == 1) { Pol::mul_sc (dest, s1, s2[0], n1); return; }
  nat m1= max_polynomial_size (s1, n1);
  nat m2= max_polynomial_size (s2, n2);
  nat m = m1 + m2 - 1;
  Polynomial x1, x2, y;
  encode_kronecker (x1, s1, n1, m);
  encode_kronecker (x2, s2, n2, m);
  y= x1 * x2;
  decode_kronecker (dest, y, n1 + n2 - 1, m); }
void mmx::mul_kronecker ( modular< modulus< I, MoV >, modular_local > *  dest,
const modular< modulus< I, MoV >, modular_local > *  s1,
const modular< modulus< I, MoV >, modular_local > *  s2,
nat  n1,
nat  n2 
) [inline]

Definition at line 72 of file kronecker_modular_int.hpp.

References C, I, and mul_kronecker_mod().

                                                                  {
  nat l1= default_aligned_size<I> (n1), l2= default_aligned_size<I> (n2);
  nat spc= l1 + l2 + default_aligned_size<I> (n1 + n2 - 1);
  I* t1= mmx_new<I> (spc); I* t2= t1 + l1, * r= t1 + l1 + l2;
  for (nat i= 0; i < n1; i++) t1[i]= * s1[i];
  for (nat i= 0; i < n2; i++) t2[i]= * s2[i];
  I p= * get_modulus (s1[0]);
  mul_kronecker_mod (r, t1, n1, t2, n2, p);
  for (nat i= 0; i < n1 + n2 - 1; i++) dest[i]= C (* r[i], p, true);
  mmx_delete<I> (t1, spc);
}
static void mmx::mul_kronecker_int ( I *  dest,
const I *  src1,
nat  n1,
const I *  src2,
nat  n2 
) [inline, static]

Definition at line 159 of file kronecker_int.cpp.

References decode_kronecker(), encode_kronecker(), and I.

{
  if (n1 == 0 && n2 == 0) return;
  for (nat i= 0; i < n1 + n2 - 1; i++) dest[i]= 0;
  while (n1 > 0 && src1[n1-1] == 0) n1--;
  while (n2 > 0 && src2[n2-1] == 0) n2--;
  if (n1 == 0 || n2 == 0) return;

  xnat bits= 16 * sizeof (I) + bit_size (min (n1, n2));
  integer aux1, aux2;
  encode_kronecker (aux1, src1, n1, bits);
  encode_kronecker (aux2, src2, n2, bits);
  integer aux= aux1 * aux2;
  decode_kronecker (dest, n1+n2-1, bits, aux);
}
void mul_kronecker_mod ( long long int *  dest,
const long long int *  src1,
nat  n1,
const long long int *  src2,
nat  n2,
const long long int &  p 
)

Definition at line 129 of file kronecker_modular_int.cpp.

{
void mul_kronecker_mod ( unsigned int *  dest,
const unsigned int *  src1,
nat  n1,
const unsigned int *  src2,
nat  n2,
const unsigned int &  p 
)

Definition at line 126 of file kronecker_modular_int.cpp.

{
void mul_kronecker_mod ( long int *  dest,
const long int *  src1,
nat  n1,
const long int *  src2,
nat  n2,
const long int &  p 
)

Definition at line 127 of file kronecker_modular_int.cpp.

{
void mul_kronecker_mod ( signed char *  dest,
const signed char *  src1,
nat  n1,
const signed char *  src2,
nat  n2,
const signed char &  p 
)

Definition at line 121 of file kronecker_modular_int.cpp.

Referenced by mul_kronecker().

{
void mul_kronecker_mod ( short int *  dest,
const short int *  src1,
nat  n1,
const short int *  src2,
nat  n2,
const short int &  p 
)

Definition at line 123 of file kronecker_modular_int.cpp.

{
void mul_kronecker_mod ( unsigned long long int *  dest,
const unsigned long long int *  src1,
nat  n1,
const unsigned long long int *  src2,
nat  n2,
const unsigned long long int &  p 
)

Definition at line 130 of file kronecker_modular_int.cpp.

{
void mul_kronecker_mod ( unsigned short int *  dest,
const unsigned short int *  src1,
nat  n1,
const unsigned short int *  src2,
nat  n2,
const unsigned short int &  p 
)

Definition at line 124 of file kronecker_modular_int.cpp.

{
void mul_kronecker_mod ( unsigned long int *  dest,
const unsigned long int *  src1,
nat  n1,
const unsigned long int *  src2,
nat  n2,
const unsigned long int &  p 
)

Definition at line 128 of file kronecker_modular_int.cpp.

{
void mul_kronecker_mod ( unsigned char *  dest,
const unsigned char *  src1,
nat  n1,
const unsigned char *  src2,
nat  n2,
const unsigned char &  p 
)

Definition at line 122 of file kronecker_modular_int.cpp.

{
void mul_kronecker_mod ( int *  dest,
const int *  src1,
nat  n1,
const int *  src2,
nat  n2,
const int &  p 
)

Definition at line 125 of file kronecker_modular_int.cpp.

{
static void mmx::mul_kronecker_mod_int ( I *  dest,
const I *  src1,
nat  n1,
const I *  src2,
nat  n2,
const I &  p 
) [inline, static]

Definition at line 99 of file kronecker_modular_int.cpp.

References decode_kronecker_mod(), and encode_kronecker().

{
  if (n1 == 0 && n2 == 0) return;
  for (nat i= 0; i < n1 + n2 - 1; i++) dest[i]= 0;
  while (n1 > 0 && src1[n1-1] == 0) n1--;
  while (n2 > 0 && src2[n2-1] == 0) n2--;
  if (n1 == 0 || n2 == 0) return;

  xnat bits= 2 * bit_size (p-1) + bit_size (min (n1, n2));
  integer aux1, aux2;
  encode_kronecker (aux1, src1, n1, bits);
  encode_kronecker (aux2, src2, n2, bits);
  integer aux= aux1*aux2;
  decode_kronecker_mod (dest, n1+n2-1, bits, aux, p);
}
matrix<C> mmx::mul_matrix ( const algebraic_extension< C > &  ext1,
const algebraic_extension< C > &  ext2,
const vector< C > &  v 
)

Definition at line 172 of file algebraic_extension.hpp.

References CF(), deg(), shift1(), and shift2().

Referenced by pow_matrix().

                                                                              {
  // let p (x1, x2) be the bivariate polynomial represented by v
  // return the matrix whose rows represent polynomials p (x1, x2) x1^i x2^j
  nat d1= deg (ext1.mp), d2= deg (ext2.mp);
  matrix<C> r (promote (0, CF(ext1)), d1*d2, d1*d2);
  vector<C> aux= fill<C> (promote (0, CF(ext1)), d1*d2);
  for (nat i1=0; i1<d1; i1++) {
    if (i1 == 0)
      for (nat k=0; k<d1*d2; k++)
        r (0, k)= v[k];
    else {
      for (nat k=0; k<d1*d2; k++)
        aux[k]= r((i1-1)*d2, k);
      aux= shift1 (ext1, ext2, aux);
      for (nat k=0; k<d1*d2; k++)
        r(i1*d2, k)= aux[k];
    }
    for (nat i2=1; i2<d2; i2++) {
      for (nat k=0; k<d1*d2; k++)
        aux[k]= r(i1*d2 + i2-1, k);
      aux= shift2 (ext1, ext2, aux);
      for (nat k=0; k<d1*d2; k++)
        r(i1*d2 + i2, k)= aux[k];
    }
  }
  return r;
}
void mmx::mul_unrolled ( D *  dest,
const S1 *  src1,
const S2 *  src2,
nat  r,
nat  rr,
nat  l,
nat  ll,
nat  c,
nat  cc 
)

Definition at line 73 of file matrix_unrolled.hpp.

{
  typedef implementation<matrix_multiply,V> Mat;
  typedef implementation<matrix_multiply_base,matrix_naive> NMat;
  typedef typename Op::acc_op Acc;
  nat nr= r/ur, nl= l/ul, nc= c/uc;
  if (nl == 0)
    NMat::template clr<Op> (dest, r, rr, c, cc);
  else
    for (nat ir=0; ir<nr; ir++)
      for (nat ic=0; ic<nc; ic++) {
        nat il=0;
        for (; il<1; il++)
          matrix_multiply_helper<Op,D,S1,S2,ur,ul,uc>::
            mul_stride (dest + Mat::index (ir*ur, ic*uc, rr, cc),
                        src1 + Mat::index (ir*ur, il*ul, rr, ll),
                        src2 + Mat::index (il*ul, ic*uc, ll, cc),
                        rr, ll);
        for (; il<nl; il++)
          matrix_multiply_helper<Acc,D,S1,S2,ur,ul,uc>::
            mul_stride (dest + Mat::index (ir*ur, ic*uc, rr, cc),
                        src1 + Mat::index (ir*ur, il*ul, rr, ll),
                        src2 + Mat::index (il*ul, ic*uc, ll, cc),
                        rr, ll);
      }
  mul_complete<Op,V> (dest, src1, src2, r, rr, l, ll, c, cc,
                      ur*nr, ul*nl, uc*nc);
}
nat mmx::N ( const crt_dicho_transformer< C, M, V > &  crter) [inline]

Definition at line 208 of file crt_dicho.hpp.

References crt_dicho_transformer< C, S, V >::size().

                                              {
  return crter.size (); 
}
nat mmx::N ( const crt_naive_transformer< C, M, V > &  crter) [inline]

Definition at line 299 of file crt_naive.hpp.

References crt_naive_transformer< C, S, V >::size().

                                              {
  return crter.size (); 
}
nat mmx::N ( const matrix< C, V > &  m) [inline]

Definition at line 182 of file matrix.hpp.

References cols(), and rows().

{ return rows (m) * cols (m); } 
V nat N ( const polynomial< C, V > &  P) [inline]

Definition at line 186 of file polynomial.hpp.

{ return P->n; }
nat mmx::N ( const crt_blocks_transformer< WL, WH, s, V > &  crter) [inline]
Examples:
crt_test.cpp, matrix_test.cpp, polynomial_int_test.cpp, polynomial_integer_test.cpp, polynomial_modular_test.cpp, and polynomial_polynomial_test.cpp.

Definition at line 175 of file crt_blocks.hpp.

References crt_blocks_transformer< WL, WH, s, V >::size().

Referenced by root_series_rep< M, V >::_derive(), system_root_series_rep< M, V, W >::_eps(), root_series_rep< M, V >::_eps(), system_root_series_rep< M, V, W >::_ev_der(), root_series_rep< M, V >::_eval(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::_half_gcd(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::_multi_rem(), annihilator(), implementation< polynomial_evaluate, V, polynomial_naive >::annulator(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::annulator(), as_matrix(), as_p_expansion(), as_vector(), big_add(), big_mul(), binary_map_scalar(), binary_test(), coefficients(), compare(), compose(), contents(), moduli_helper< integer, M, fft_prime_sequence_int< t > >::covering(), crt_blocks_transformer< WL, WH, s, V >::crt_blocks_transformer(), crt_dicho_transformer< C, S, V >::crt_dicho_transformer(), as_helper< polynomial< T, TV >, polynomial< F, FV > >::cv(), as_helper< polynomial< modular< modulus< C, U1 >, U2 >, V >, Lift_type(modular< modulus< C, U1 >, U2 >)>::cv(), fast_helper< polynomial< C, V > >::dd(), decode_kronecker(), derive(), implementation< series_multiply, U, series_fast >::determine_sizes(), dilate(), direct_crt(), implementation< polynomial_evaluate, V, polynomial_naive >::evaluate(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::evaluate(), evaluate(), expand(), coprime_moduli_sequence_polynomial::extend(), probable_prime_sequence_int< s >::extend(), fft_prime_sequence_int< s >::extend(), prime_sequence_int::extend(), extract_mod(), flatten(), implementation< polynomial_gcd, V, polynomial_ring_naive< W > >::gcd(), implementation< polynomial_gcd, V, polynomial_naive >::gcd(), implementation< series_multiply, U, series_carry_relaxed< W > >::mul_series_rep< M, V >::get_power_of_p(), get_vector_format(), GLUE_22(), GLUE_23(), GLUE_4(), GLUE_5(), GLUE_57(), GLUE_6(), GLUE_7(), GLUE_8(), GLUE_9(), graeffe(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::half_subresultant(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::half_subresultant_rec(), hankel_matrix(), implicit_vector_series(), ldiv_mat_series_rep< C, V, W, U >::Increase_order(), ldiv_sc_mat_series_rep< C, V, W, U >::Increase_order(), vector_series_rep< C, V, W >::Increase_order(), solver_series_rep< C, V >::Increase_order(), implementation< series_multiply, U, series_fast >::mul_series_rep< C, V >::Increase_order(), system_root_series_rep< M, V, W >::increase_order_generic(), root_series_rep< M, V >::increase_order_generic(), ldiv_mat_series_rep< C, V, W, U >::initialize(), ldiv_sc_mat_series_rep< C, V, W, U >::initialize(), fixed_point_vector_series_rep< C >::initialize(), fixed_point_series_rep< C >::initialize(), system_root_series_rep< M, V, W >::initialize(), implementation< polynomial_gcd, X, polynomial_series< BV > >::inv_mod_polynomial_series_rep< C, U, V, W >::initialize(), insert_and_reduce(), integrate(), implementation< polynomial_evaluate, V, polynomial_naive >::interpolate(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::interpolate(), inverse_base(), invert(), invert_hi(), invert_lo(), implementation< polynomial_gcd, X, polynomial_series< BV > >::invert_mod(), join(), lshiftz(), map(), implementation< matrix_multiply, V, matrix_crt< W > >::mat_direct_crt(), implementation< matrix_multiply, V, matrix_crt< W > >::mat_inverse_crt(), implementation< matrix_multiply, V, matrix_balanced< W > >::mat_size(), matrix_mul_quo(), matrix_new(), max_polynomial_size(), minimal_polynomial_bis(), implementation< matrix_multiply, V, matrix_crt< W > >::mul(), implementation< series_multiply, U, series_carry_modular_int_naive< W > >::mul_series_rep< M, V >::mul_series_rep(), implementation< polynomial_evaluate, V, polynomial_gcd_ring_dicho_inc< W > >::multi_gcd(), implementation< polynomial_evaluate, V, polynomial_naive >::multi_rem(), vector_series_rep< C, V, W >::next(), vector_access_series_rep< C, V, W >::next(), solver_series_rep< C, V >::next(), polynomial_series_rep< C, V >::next(), implementation< series_multiply, U, series_carry_modular_int_naive< W > >::mul_series_rep< M, V >::next(), quotient_normalization_helper< polynomial< rational, V >, polynomial< rational, V > >::normalize(), nr_transpositions(), implementation< series_multiply, U, series_fast >::nrelax_mul_series_rep< C, V >::nrelax_mul_series_rep(), nth_root(), permutation::operator()(), operator*(), operator+(), polynomial< C, V >::operator+=(), operator-(), polynomial< C, V >::operator-=(), operator/(), coprime_moduli_sequence< M, V >::operator[](), implementation< polynomial_gcd, V, polynomial_ring_naive< W > >::pade(), implementation< polynomial_gcd, V, polynomial_naive >::pade(), polynomial< series< C, V >, U >::polynomial(), pquo(), prem(), primitive_part(), q_difference(), quo(), rec_prod(), rec_square(), rem(), reverse(), root_modular_naive::roots(), row_matrix(), separable_root(), set_as(), implementation< series_multiply, U, series_carry_relaxed< W > >::mul_series_rep< M, V >::Set_order(), shift(), sign(), singleton_vector(), matrix_crt_multiply_helper< C >::size(), size_bound_in_base_helper< C, I >::size(), skew_div(), solver_series_rep< C, V >::solver_series_rep(), square(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::subresultant_compose(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_ducos_inc< BV > >::subresultant_sequence(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_naive_inc< W > >::subresultant_sequence(), implementation< polynomial_subresultant_base, V, polynomial_ring_naive< W > >::subresultant_sequence(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::subresultant_sequence(), implementation< polynomial_subresultant, V, polynomial_naive >::subresultant_sequence(), implementation< polynomial_subresultant_base, V, polynomial_naive >::subresultant_sequence(), tensor_matrix(), implementation< polynomial_evaluate, V, polynomial_naive >::tevaluate(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::tevaluate(), implementation< polynomial_evaluate, V, polynomial_naive >::tinterpolate(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::tinterpolate(), tmul(), toeplitz_matrix(), tquo(), trem(), unary_hash(), unary_map(), fast_helper< polynomial< C, V > >::uu(), val(), vandermonde(), WRAP_BINARY_IMPL(), binary_helper< polynomial< C, V > >::write(), and xderive().

                                                   {
  return crter.size (); 
}
nat mmx::nbcol ( const matrix< C, V > &  m) [inline]

Definition at line 180 of file matrix.hpp.

References cols().

Referenced by bareiss_coimage(), bareiss_det(), bareiss_extended_pivoting(), bareiss_image(), and bareiss_pivoting().

{return cols(m);}
nat mmx::nbrow ( const matrix< C, V > &  m) [inline]

Definition at line 181 of file matrix.hpp.

References rows().

Referenced by bareiss_cokernel(), bareiss_det(), bareiss_extended_pivoting(), bareiss_kernel(), bareiss_krylov(), and bareiss_pivoting().

{return rows(m);} 
quotient_series<Series,Monomial> mmx::normalize ( const quotient_series< Series, Monomial > &  f,
const Monomial &  dom_m 
) [inline]

Definition at line 131 of file quotient_series.hpp.

References lshiftz(), and Quotient_series.

                                                            {
  return Quotient_series (lshiftz (f->f, f->m / dom_m), dom_m); }
algebraic_extension<C> mmx::normalize ( const algebraic_extension< C > &  ext,
const typename algebraic_extension< C >::El &  p 
)

Definition at line 331 of file algebraic_extension.hpp.

References annihilator(), and Extension.

                                                   {
  return Extension (annihilator (ext, p));
}
algebraic<C,Extension> mmx::normalize ( const algebraic< C, Extension > &  a) [inline]

Definition at line 181 of file algebraic.hpp.

References Algebraic, CF(), Extension, field(), Polynomial, and value().

Referenced by abs(), GLUE_36(), GLUE_4(), GLUE_7(), polynomial< C, V >::operator+=(), quotient< NT, DT >::quotient(), Re(), root(), set_as(), and REP_STRUCT< Series, Monomial >::unknown_rep().

                               {
  Extension  ext= normalize (field (a), value (a));
  Polynomial pri (vec<C> (promote (0, CF(a)), promote (1, CF(a))));
  return Algebraic (ext, pri);
}
algebraic_number_extension<C,Ball> mmx::normalize ( const algebraic_number_extension< C, Ball > &  ext,
const typename algebraic_number_extension< C, Ball >::El &  p 
)

Definition at line 360 of file algebraic_number.hpp.

References annihilator(), eval(), Extension, Field, Polynomial, and shrink().

                                               {
  Polynomial mp= annihilator (ext.ext, p);
  Ball z;
  nat old_precision= mmx_bit_precision;
  while (true) {
    z= eval (ext, p);
    if (shrink (mp, z)) break;
    mmx_bit_precision= mmx_bit_precision << 1;
  }
  mmx_bit_precision= old_precision;
  return Field (Extension (mp), z);
}
nat nr_transpositions ( const permutation &  p)

Definition at line 39 of file permutation.cpp.

References N().

Referenced by GLUE_9().

                                         {
  nat s= 0, n= N(p);
  for (nat i=0; i<n; i++)
    if (p (i) > i) s += p (i) - i;
  return s;
}
modular< modulus<C,V> ,W> mmx::nth_root ( const modular< modulus< C, V >, W > &  a,
nat  r 
)

Definition at line 144 of file root_modular.hpp.

References N(), and nth_roots().

                                   {
  if (a == 1) return a;
  vector<Modular> ans= nth_roots (a, r); 
  ASSERT (N (ans) != 0, "no root");
  return ans [0];
}
vector< modular< modulus<C,V> ,W> > mmx::nth_roots ( const modular< modulus< C, V >, W > &  a,
nat  r 
)

Definition at line 136 of file root_modular.hpp.

References C, Modular, and separable_roots().

Referenced by nth_root().

                                    {
  // return all the r th roots of a
  C p= * get_modulus (a);
  if (Modular (r) == 0) return nth_roots (a, r / as<nat> (p));
  return separable_roots (a, r);
}
series<C> mmx::nullary_recursive_series ( const C &  c = Op::template op<C> ()) [inline]

Definition at line 606 of file series.hpp.

References C, recursive(), Series_variant, and V.

                                                           {
  typedef typename Series_variant (C) V;
  typedef implementation<series_recursive_abstractions,V> Ser;
  typedef typename Ser::template nullary_recursive_series_rep<Op,C,V> Nullary;
  series_rep<C>* rep= new Nullary (c);
  return recursive (series<C> (rep));
}
matrix<C,V>& mmx::nullary_set ( matrix< C, V > &  m)

Definition at line 462 of file matrix.hpp.

References cols(), rows(), and tab().

                             {
  typedef implementation<vector_linear,V> Vec;
  Vec::template vec_nullary<Op> (tab (m), rows (m) * cols (m));
  return m;
}
bool mmx::operator!= ( const series< C, V > &  f1,
const series< C, V > &  f2 
)

Definition at line 296 of file series.hpp.

                                                           {
  return !binary_test<equal_op> (f1, f2); }
bool mmx::operator!= ( const algebraic< C, Extension > &  x1,
const algebraic< C, Extension > &  x2 
) [inline]

Definition at line 128 of file algebraic.hpp.

References is_zero().

                                                                        {
  return !is_zero (x1 - x2); }
bool mmx::operator!= ( const algebraic_number_extension< C, Ball > &  x,
const algebraic_number_extension< C, Ball > &  y 
) [inline]

Definition at line 80 of file algebraic_number.hpp.

                                                              {
  return (*x) != (*y); }
bool mmx::operator!= ( const quotient_series< Series, Monomial > &  f,
const quotient_series< Series, Monomial > &  g 
) [inline]

Definition at line 97 of file quotient_series.hpp.

                                                                 {
  return !(f == g); }
bool mmx::operator!= ( const matrix< C, V > &  m,
const K &  c 
)

Definition at line 612 of file matrix.hpp.

References cols(), Matrix, and rows().

                                          {
  return m != Matrix (c, rows (m), cols (m)); }
bool mmx::operator!= ( const algebraic_extension< C > &  x,
const algebraic_extension< C > &  y 
) [inline]

Definition at line 60 of file algebraic_extension.hpp.

                                                                      {
  return (*x) != (*y); }
bool mmx::operator!= ( const quotient< NT, DT > &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 145 of file quotient.hpp.

                                                                      {
  return !(x1 == x2); }
algebraic<C,Extension> mmx::operator* ( const algebraic< C, Extension > &  x1b,
const algebraic< C, Extension > &  x2b 
)

Definition at line 236 of file algebraic.hpp.

References Algebraic, field(), mul(), upgrade(), and value().

                                                        {
  Algebraic x1= x1b, x2= x2b;
  upgrade (x1, x2);
  return Algebraic (field (x1), mul (field (x1), value (x1), value (x2)));
}
algebraic<C,Extension> mmx::operator* ( const algebraic< C, Extension > &  x1,
const C &  x2 
) [inline]

Definition at line 243 of file algebraic.hpp.

References Algebraic, field(), and value().

                                              {
  return Algebraic (field (x1), value (x1) * x2);
}
polynomial<C,V> mmx::operator* ( const polynomial< C, V > &  P,
const C &  c 
)

Definition at line 547 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

                                             {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= N(P);
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::mul_sc (r, seg (P), c, n);
  return Polynomial (r, n, l, CF(P));
}
matrix<C,V> mmx::operator* ( const matrix< C, V > &  m,
const permutation &  p 
)

Definition at line 1031 of file matrix.hpp.

References CF(), cols(), is_a_scalar(), Matrix, rows(), seg(), and tab().

                                                   {
  // returns m * as_matrix (p)
  typedef implementation<matrix_permute,V> Mat;
  if (is_a_scalar (m)) return m;
  nat rs= rows (m), cs= cols (m);
  Matrix dest (promote (0, CF(m)), rs, cs);
  Mat::col_permute (tab (dest), tab (m), seg (*p), rs, cs);
  return dest;
}
matrix<C,V> mmx::operator* ( const C &  c,
const matrix< C, V > &  m 
)

Definition at line 588 of file matrix.hpp.

                                                     {
  return binary_map_scalar<lmul_op> (m, c); }
unknown<C,V> mmx::operator* ( const unknown< C, V > &  c1,
const C &  c2 
)

Definition at line 192 of file series_implicit.hpp.

References C, is_exact_zero(), and UC.

                                       {
  //mmerr << "    scalar times " << c1 << ", " << c2 << "\n";
  if (is_exact_zero (c1)) return c1;
  if (is_exact_zero (c2))
    return UC (c1->f, C (0), mmx_new<C> (0), c1->i1, c1->i1);
  nat n= c1->i2 - c1->i1;
  C* s= mmx_new<C> (n);
  for (nat i=0; i<n; i++)
    s[i]= c1->s[i] * c2;
  return UC (c1->f, c1->b * c2, s, c1->i1, c1->i2);
}
quotient<NT,DT> mmx::operator* ( const NT &  c,
const quotient< NT, DT > &  x 
) [inline]

Definition at line 242 of file quotient.hpp.

References denominator(), DT, gcd(), numerator(), and Quotient.

                                            {
  DT g = gcd (c, denominator (x));
  return Quotient ((c / g) * numerator (x), denominator (x) / g);
}
quotient<NT,DT> mmx::operator* ( const quotient< NT, DT > &  x,
const NT &  c 
) [inline]

Definition at line 248 of file quotient.hpp.

References denominator(), DT, gcd(), numerator(), and Quotient.

                                            {
  DT g = gcd (c, denominator (x));
  return Quotient (numerator (x) * (c / g), denominator (x) / g);
}
algebraic<C,Extension> mmx::operator* ( const C &  x1,
const algebraic< C, Extension > &  x2 
) [inline]

Definition at line 248 of file algebraic.hpp.

References Algebraic, field(), and value().

                                              {
  return Algebraic (field (x2), x1 * value (x2));
}
series< unknown<C,V> ,UV> mmx::operator* ( const series< unknown< C, V >, UV > &  f,
const series< unknown< C, V >, UV > &  g 
)

Definition at line 414 of file series_implicit.hpp.

References CF(), and is_exact_zero().

                                                            {
  if (is_exact_zero (f) || is_exact_zero (g))
    return series<UC,UV> (CF(f));
  return (series_rep<UC,UV>*) new subst_mul_series_rep<C,V,UV> (f, g);
}
quotient_series<Series,Monomial> mmx::operator* ( const typename scalar_type_helper< Series >::val &  c,
const quotient_series< Series, Monomial > &  f 
)

Definition at line 192 of file quotient_series.hpp.

References Quotient_series.

                                                  {
  return Quotient_series (c * f->f, f->m);
}
matrix<C,V> mmx::operator* ( const matrix< C, V > &  m,
const C &  c 
)

Definition at line 586 of file matrix.hpp.

                                                     {
  return binary_map_scalar<rmul_op> (m, c); }
quotient< polynomial<C,V> , polynomial<C,V> > mmx::operator* ( const C &  c,
const quotient< polynomial< C, V >, polynomial< C, V > > &  x 
) [inline]

Definition at line 47 of file quotient_polynomial.hpp.

References denominator(), numerator(), and Quotient.

                                           {
  return Quotient (c * numerator (x), denominator (x));
}
quotient_series<Series,Monomial> mmx::operator* ( const quotient_series< Series, Monomial > &  f,
const quotient_series< Series, Monomial > &  g 
)

Definition at line 202 of file quotient_series.hpp.

References Quotient_series.

                                                                {
  return Quotient_series (f->f * g->f, f->m * g->m);
}
unknown<C,V> mmx::operator* ( const unknown< C, V > &  c1,
const unknown< C, V > &  c2 
)

Definition at line 269 of file series_implicit.hpp.

References is_exact_zero(), known(), substitute(), and UC.

                                        {
  //mmerr << "    times " << c1 << ", " << c2 << "\n";
  if (is_exact_zero (c1)) return c1;
  if (is_exact_zero (c2)) return c2;
  if (c1->i1 == c1->i2) return known (c1) * c2;
  if (c2->i1 == c2->i2) return c1 * known (c2);
  UC c1b= substitute (c1);
  UC c2b= substitute (c2);
  if (c1b->i1 == c1b->i2) return known (c1b) * c2b;
  if (c2b->i1 == c2b->i2) return c1b * known (c2b);
  ERROR ("invalid product of unknown coefficients");
}
quotient<NT,DT> mmx::operator* ( const quotient< NT, DT > &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 254 of file quotient.hpp.

References denominator(), DT, gcd(), numerator(), and Quotient.

                                                    {
  DT g1 = gcd (numerator (x1), denominator (x2));
  DT g2 = gcd (numerator (x2), denominator (x1));
  return Quotient ((numerator (x1) / g1) * (numerator (x2) / g2),
                   (denominator (x1) / g2) * (denominator (x2) / g1));
}
unknown<C,V> mmx::operator* ( const C &  c1,
const unknown< C, V > &  c2 
)

Definition at line 205 of file series_implicit.hpp.

References C, is_exact_zero(), and UC.

                                       {
  //mmerr << "    scalar times " << c1 << ", " << c2 << "\n";
  if (is_exact_zero (c2)) return c2;
  if (is_exact_zero (c1))
    return UC (c2->f, C (0), mmx_new<C> (0), c2->i1, c2->i1);
  nat n= c2->i2 - c2->i1;
  C* s= mmx_new<C> (n);
  for (nat i=0; i<n; i++)
    s[i]= c1 * c2->s[i];
  return UC (c2->f, c1 * c2->b, s, c2->i1, c2->i2);
}
multiplier<C> X mmx::operator* ( const X &  a,
const multiplier< C > &  b 
) [inline]

Definition at line 55 of file multiplier.hpp.

                                             {
  X c (a);
  Multiplier::rmul (c, b);
  return c; }
quotient_series<Series,Monomial> mmx::operator* ( const quotient_series< Series, Monomial > &  f,
const typename scalar_type_helper< Series >::val &  c 
)

Definition at line 197 of file quotient_series.hpp.

References Quotient_series.

                                                  {
  return Quotient_series (c * f->f, f->m);
}
quotient< polynomial<C,V> , polynomial<C,V> > mmx::operator* ( const quotient< polynomial< C, V >, polynomial< C, V > > &  x,
const C &  c 
) [inline]

Definition at line 52 of file quotient_polynomial.hpp.

References denominator(), numerator(), and Quotient.

                                           {
  return Quotient (numerator (x) * c, denominator (x));
}
X mmx::operator* ( const multiplier< C > &  b,
const X &  a 
) [inline]

Definition at line 61 of file multiplier.hpp.

                                             {
  X c (a);
  Multiplier::lmul (c, b);
  return c; }
series<C,V> mmx::operator* ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 727 of file series.hpp.

References is_exact_zero(), and Series.

                                         {
  if (is_exact_zero (f) || is_exact_zero (c))
    return Series (get_format (c));
  return binary_scalar_series<rmul_op> (f, c);
}
matrix<C,V> mmx::operator* ( const permutation &  p,
const matrix< C, V > &  m 
)

Definition at line 1042 of file matrix.hpp.

References CF(), cols(), is_a_scalar(), Matrix, rows(), seg(), and tab().

                                                   {
  // returns transpose (as_matrix (p)) * m
  typedef implementation<matrix_permute,V> Mat;
  if (is_a_scalar (m)) return m;
  nat rs= rows (m), cs= cols (m);
  Matrix dest (promote (0, CF(m)), rs, cs);
  Mat::row_permute (tab (dest), tab (m), seg (*p), rs, cs);
  return dest;
}
polynomial<C,V> mmx::operator* ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Definition at line 502 of file polynomial.hpp.

References C, CF(), mul(), N(), Polynomial, and seg().

                                                        {
  typedef implementation<polynomial_multiply,V> Pol;
  nat n1= N(P1), n2= N(P2);
  if (n1 == 0 || n2 == 0) return Polynomial (CF(P1));
  nat l= aligned_size<C,V> (n1+n2-1);
  C* r= mmx_formatted_new<C> (l, CF(P1));
  Pol::mul (r, seg (P1), seg (P2), n1, n2);
  return Polynomial (r, n1+n2-1, l, CF(P1));
}
permutation operator* ( const permutation &  p1,
const permutation &  p2 
)

Definition at line 47 of file permutation.cpp.

References N().

                                                          {
  nat n= N(p1);
  ASSERT (N(p2) == n, "sizes do not match");
  vector<nat> v= fill<nat> (n);
  for (nat i=0; i<n; i++) v[i]= p1 (p2 (i));
  return permutation (v);
}
series<C,V> mmx::operator* ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 1062 of file series.hpp.

                                              {
  typedef implementation<series_multiply,V> Ser;
  return Ser::ser_mul (f, g);
}
quotient_series<Series,Monomial> mmx::operator* ( const quotient_series< Series, Monomial > &  f,
const Monomial &  m 
)

Definition at line 187 of file quotient_series.hpp.

References Quotient_series.

                                                         {
  return Quotient_series (f->f, f->m * m);
}
vector<C,W> mmx::operator* ( const matrix< C, V > &  m,
const vector< C, W > &  v 
)

Definition at line 875 of file matrix.hpp.

References CF(), cols(), is_a_scalar(), is_non_scalar(), N(), rows(), matrix< C, V >::scalar(), seg(), and tab().

                                                        {
  typedef implementation<vector_linear,W> Vec;
  typedef implementation<matrix_linear,V> Mat;
  if (is_a_scalar (m)) return m.scalar() * v;
  ASSERT (is_non_scalar (v), "non-scalar vector expected");
  nat rr= rows (m), cc= cols (m);
  ASSERT (cc == N(v), "sizes don't match");
  nat l= aligned_size<C,W> (rr);
  C*  a= mmx_formatted_new<C> (l, CF(m));
  for (nat i=0; i<rr; i++)
    a[i]= Vec::template vec_binary_big_stride<mul_add_op>
      (tab (m) + Mat::index (i, 0, rr, cc), Mat::index (0, 1, rr, cc),
       seg (v), 1, cc);
  return vector<C,W> (a, rr, l, CF(m));
}
series<C,V> mmx::operator* ( const C &  c,
const series< C, V > &  f 
) [inline]

Definition at line 734 of file series.hpp.

References is_exact_zero(), and Series.

                                         {
  if (is_exact_zero (f) || is_exact_zero (c))
    return Series (get_format (c));
  return binary_scalar_series<lmul_op> (f, c);
}
vector<C,W> mmx::operator* ( const vector< C, W > &  v,
const matrix< C, V > &  m 
)

Definition at line 892 of file matrix.hpp.

References CF(), cols(), is_a_scalar(), is_non_scalar(), N(), rows(), matrix< C, V >::scalar(), seg(), and tab().

                                                        {
  typedef implementation<vector_linear,W> Vec;
  typedef implementation<matrix_linear,V> Mat;
  if (is_a_scalar (m)) return v * m.scalar();
  ASSERT (is_non_scalar (v), "non-scalar vector expected");
  nat rr= rows (m), cc= cols (m);
  ASSERT (rr == N(v), "sizes don't match");
  nat l= aligned_size<C,W> (cc);
  C*  a= mmx_formatted_new<C> (l, CF(m));
  for (nat i=0; i<cc; i++)
    a[i]= Vec::template vec_binary_big_stride<mul_add_op>
      (seg (v), 1,
       tab (m) + Mat::index (0, i, rr, cc), Mat::index (1, 0, rr, cc), rr);
  return vector<C,W> (a, cc, l, CF(m));
}
polynomial<C,V> mmx::operator* ( const C &  c,
const polynomial< C, V > &  P 
)

Definition at line 557 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

                                             {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= N(P);
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::mul_sc (r, seg (P), c, n);
  return Polynomial (r, n, l, CF(P));
}
quotient_series<Series,Monomial> mmx::operator* ( const Monomial &  m,
const quotient_series< Series, Monomial > &  f 
)

Definition at line 182 of file quotient_series.hpp.

References Quotient_series.

                                                         {
  return Quotient_series (f->f, m * f->m);
}
matrix<C,V> mmx::operator* ( const matrix< C, V > &  m,
const matrix< C, V > &  n 
)

Definition at line 859 of file matrix.hpp.

References CF(), cols(), is_a_scalar(), is_non_scalar(), Matrix, mul(), rows(), and tab().

                                              {
  typedef implementation<matrix_multiply,V> Mat;
  if (is_a_scalar (m) || is_a_scalar (n)) {
    if (is_non_scalar (m)) return m * n.scalar();
    if (is_non_scalar (n)) return m.scalar() * n;
    return Matrix (m.scalar() * n.scalar());
  }
  nat mrows= rows (m), mcols= cols (m), nrows= rows(n), ncols= cols(n);
  ASSERT (nrows == mcols, "numbers of rows and columns don't match");
  nat l= aligned_size<C,V> (mrows * ncols);
  C*  r= mmx_formatted_new<C> (l, CF(m));
  Mat::mul (r, tab (m), tab (n), mrows, mcols, ncols);
  return Matrix (r, mrows, ncols, CF(m));
}
X mmx::operator*= ( X &  a,
const multiplier< C > &  b 
) [inline]

Definition at line 67 of file multiplier.hpp.

                                        {
  Multiplier::rmul (a, b);
  return a; }
matrix<C,V>& mmx::operator*= ( matrix< C, V > &  m,
const C &  x 
)

Definition at line 600 of file matrix.hpp.

                                                 {
  return unary_set_scalar<rmul_op> (m, x); }
quotient< polynomial<C,V> , polynomial<C,V> > mmx::operator+ ( const quotient< polynomial< C, V >, polynomial< C, V > > &  x1,
const C &  x2 
) [inline]

Definition at line 23 of file quotient_polynomial.hpp.

References denominator(), numerator(), and Quotient.

                                             {
  return Quotient (numerator (x1) + x2 * denominator (x1),
                   denominator (x1));
}
series<C,V> mmx::operator+ ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 679 of file series.hpp.

References is_exact_zero().

                                              {
  if (is_exact_zero (f)) return g;
  if (is_exact_zero (g)) return f;
  return binary_series<add_op> (f, g);
}
polynomial<C,V> mmx::operator+ ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Definition at line 454 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

                                                        {
  typedef implementation<polynomial_linear,V> Pol;
  nat m= min (N(P1), N(P2));
  nat n= max (N(P1), N(P2));
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P1));
  Pol::add (r, seg (P1), seg (P2), m);
  if (N(P1) > m) Pol::copy (r+m, seg(P1)+m, n-m);
  if (N(P2) > m) Pol::copy (r+m, seg(P2)+m, n-m);
  return Polynomial (r, n, l, CF(P1));
}
polynomial<C,V> mmx::operator+ ( const polynomial< C, V > &  P,
const C &  c 
)

Definition at line 466 of file polynomial.hpp.

References Polynomial.

                                                             {
  return P + Polynomial (c); }
matrix<C,V> mmx::operator+ ( const C &  m,
const matrix< C, V > &  n 
)

Definition at line 578 of file matrix.hpp.

References Matrix.

                                                     {
  return binary_map<add_op> (Matrix (m), n); }
matrix<C,V> mmx::operator+ ( const matrix< C, V > &  m,
const matrix< C, V > &  n 
)

Definition at line 574 of file matrix.hpp.

                                                          {
  return binary_map<add_op> (m, n); }
DT quotient<NT,DT> mmx::operator+ ( const quotient< NT, DT > &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 193 of file quotient.hpp.

References denominator(), DT, gcd(), NT, numerator(), and Quotient.

                                                    {
  DT g  = gcd (denominator (x1), denominator(x2));
  DT y1 = denominator (x1) / g;
  DT y2 = denominator (x2) / g;
  NT n  = numerator(x1) * y2 + numerator(x2) * y1;
  DT h  = gcd (g, n);
  return Quotient (n / h, (g / h) * y1 * y2);
}
unknown<C,V> mmx::operator+ ( const unknown< C, V > &  c1,
const C &  c2 
)

Definition at line 179 of file series_implicit.hpp.

References C, is_exact_zero(), and UC.

                                       {
  //mmerr << "    scalar plus " << c1 << ", " << c2 << "\n";
  if (is_exact_zero (c1))
    return UC (c1->f, c2, mmx_new<C> (0), c1->i1, c1->i1);
  if (is_exact_zero (c2)) return c1;
  nat n= c1->i2 - c1->i1;
  C* s= mmx_new<C> (n);
  for (nat i=0; i<n; i++)
    s[i]= c1->s[i];
  return UC (c1->f, c1->b + c2, s, c1->i1, c1->i2);
}
quotient<NT,DT> mmx::operator+ ( const NT &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 209 of file quotient.hpp.

References denominator(), numerator(), and Quotient.

                                              {
  return Quotient (x1 * denominator (x2) + numerator (x2),
                   denominator (x2));
}
quotient<NT,DT> mmx::operator+ ( const quotient< NT, DT > &  x1,
const NT &  x2 
) [inline]

Definition at line 203 of file quotient.hpp.

References denominator(), numerator(), and Quotient.

                                              {
  return Quotient (numerator (x1) + x2 * denominator (x1),
                   denominator (x1));
}
series<C,V> mmx::operator+ ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 693 of file series.hpp.

References is_exact_zero(), and Series.

                                         {
  if (is_exact_zero (c)) return f;
  if (is_exact_zero (f)) return Series (c);
  return binary_series<add_op> (f, Series (c));
}
series<C,V> mmx::operator+ ( const C &  c,
const series< C, V > &  f 
) [inline]

Definition at line 686 of file series.hpp.

References is_exact_zero(), and Series.

                                         {
  if (is_exact_zero (c)) return f;
  if (is_exact_zero (f)) return Series (c);
  return binary_series<add_op> (Series (c), f);
}
unknown<C,V> mmx::operator+ ( const unknown< C, V > &  c1,
const unknown< C, V > &  c2 
)

Definition at line 218 of file series_implicit.hpp.

References C, known(), and UC.

                                        {
  //mmerr << "    plus " << c1 << ", " << c2 << "\n";
  if (c1->i1 == c1->i2) return c2 + known (c1);
  if (c2->i1 == c2->i2) return c1 + known (c2);
  ASSERT (c1->f == c2->f, "incompatible unknown coefficients");
  nat i1= min (c1->i1, c2->i1);
  nat i2= max (c1->i2, c2->i2);
  C* s= mmx_new<C> (i2-i1);
  for (nat i= i1; i<i2; i++)
    s[i-i1]=
      (i >= c1->i1 && i < c1->i2? c1->s[i - c1->i1]: C(0)) +
      (i >= c2->i1 && i < c2->i2? c2->s[i - c2->i1]: C(0));
  return UC (c1->f, c1->b + c2->b, s, i1, i2);
}
quotient_series<Series,Monomial> mmx::operator+ ( const quotient_series< Series, Monomial > &  f,
const quotient_series< Series, Monomial > &  g 
)

Definition at line 139 of file quotient_series.hpp.

References gcd(), Monomial, and Quotient_series.

                                                                {
  if (f->m == g->m) return Quotient_series (f->f + g->f, f->m);
  else {
    Monomial m= gcd (f->m, g->m);
    return Quotient_series (f->f * (f->m / m) + g->f * (g->m / m), m);
  }
}
polynomial<C,V> mmx::operator+ ( const C &  c,
const polynomial< C, V > &  P 
)

Definition at line 468 of file polynomial.hpp.

References Polynomial.

                                                             {
  return Polynomial (c) + P; }
quotient_series<Series,Monomial> mmx::operator+ ( const quotient_series< Series, Monomial > &  f,
const typename scalar_type_helper< Series >::val &  c 
)

Definition at line 148 of file quotient_series.hpp.

References Quotient_series.

                                                  {
  return Quotient_series (f->f + Quotient_series (c));
}
matrix<C,V> mmx::operator+ ( const matrix< C, V > &  m,
const C &  n 
)

Definition at line 576 of file matrix.hpp.

References Matrix.

                                                     {
  return binary_map<add_op> (m, Matrix (n)); }
quotient_series<Series,Monomial> mmx::operator+ ( const typename scalar_type_helper< Series >::val &  c,
const quotient_series< Series, Monomial > &  f 
)

Definition at line 153 of file quotient_series.hpp.

References Quotient_series.

                                                  {
  return Quotient_series (Quotient_series (c) + f->f);
}
algebraic<C,Extension> mmx::operator+ ( const algebraic< C, Extension > &  x1,
const C &  x2 
) [inline]

Definition at line 199 of file algebraic.hpp.

References Algebraic, field(), and value().

                                              {
  return Algebraic (field (x1), value (x1) + x2);
}
quotient< polynomial<C,V> , polynomial<C,V> > mmx::operator+ ( const C &  x1,
const quotient< polynomial< C, V >, polynomial< C, V > > &  x2 
) [inline]

Definition at line 29 of file quotient_polynomial.hpp.

References denominator(), numerator(), and Quotient.

                                             {
  return Quotient (x1 * denominator (x2) + numerator (x2),
                   denominator (x2));
}
algebraic<C,Extension> mmx::operator+ ( const C &  x1,
const algebraic< C, Extension > &  x2 
) [inline]

Definition at line 204 of file algebraic.hpp.

References Algebraic, field(), and value().

                                              {
  return Algebraic (field (x2), x1 + value (x2));
}
algebraic<C,Extension> mmx::operator+ ( const algebraic< C, Extension > &  x1b,
const algebraic< C, Extension > &  x2b 
)

Definition at line 192 of file algebraic.hpp.

References Algebraic, field(), upgrade(), and value().

                                                        {
  Algebraic x1= x1b, x2= x2b;
  upgrade (x1, x2);
  return Algebraic (field (x1), value (x1) + value (x2));
}
matrix<C,V>& mmx::operator+= ( matrix< C, V > &  m,
const matrix< C, V > &  n 
)

Definition at line 596 of file matrix.hpp.

                                                      {
  return unary_set<add_op> (m, n); }
quotient_series<Series,Monomial> mmx::operator- ( const quotient_series< Series, Monomial > &  f,
const typename scalar_type_helper< Series >::val &  c 
)

Definition at line 172 of file quotient_series.hpp.

References Quotient_series.

                                                  {
  return Quotient_series (f->f - Quotient_series (c));
}
quotient<NT,DT> mmx::operator- ( const quotient< NT, DT > &  x) [inline]

Definition at line 215 of file quotient.hpp.

References denominator(), numerator(), and Quotient.

                               {
  return Quotient (-numerator (x), denominator (x));
}
algebraic<C,Extension> mmx::operator- ( const C &  x1,
const algebraic< C, Extension > &  x2 
) [inline]

Definition at line 226 of file algebraic.hpp.

References Algebraic, field(), and value().

                                              {
  return Algebraic (field (x2), x1 - value (x2));
}
algebraic<C,Extension> mmx::operator- ( const algebraic< C, Extension > &  x1,
const C &  x2 
) [inline]

Definition at line 221 of file algebraic.hpp.

References Algebraic, field(), and value().

                                              {
  return Algebraic (field (x1), value (x1) - x2);
}
polynomial<C,V> mmx::operator- ( const polynomial< C, V > &  P,
const C &  c 
)

Definition at line 496 of file polynomial.hpp.

References Polynomial.

                                                             {
  return P - Polynomial (c); }
series<C,V> mmx::operator- ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 720 of file series.hpp.

References is_exact_zero(), and Series.

                                         {
  if (is_exact_zero (f)) return Series (-c);
  if (is_exact_zero (c)) return f;
  return binary_series<sub_op> (f, Series (c));
}
matrix<C,V> mmx::operator- ( const C &  m,
const matrix< C, V > &  n 
)

Definition at line 584 of file matrix.hpp.

References Matrix.

                                                     {
  return binary_map<sub_op> (Matrix (m), n); }
quotient<NT,DT> mmx::operator- ( const quotient< NT, DT > &  x1,
const NT &  x2 
) [inline]

Definition at line 230 of file quotient.hpp.

References denominator(), numerator(), and Quotient.

                                              {
  return Quotient (numerator (x1) - x2 * denominator (x1),
                   denominator (x1));
}
quotient_series<Series,Monomial> mmx::operator- ( const typename scalar_type_helper< Series >::val &  c,
const quotient_series< Series, Monomial > &  f 
)

Definition at line 177 of file quotient_series.hpp.

References Quotient_series.

                                                  {
  return Quotient_series (Quotient_series (c) - f->f);
}
quotient_series<Series,Monomial> mmx::operator- ( const quotient_series< Series, Monomial > &  f)

Definition at line 158 of file quotient_series.hpp.

References Quotient_series.

                                      {
  return Quotient_series (-f->f, f->m);
}
matrix<C,V> mmx::operator- ( const matrix< C, V > &  m,
const C &  n 
)

Definition at line 582 of file matrix.hpp.

References Matrix.

                                                     {
  return binary_map<sub_op> (m, Matrix (n)); }
quotient< polynomial<C,V> , polynomial<C,V> > mmx::operator- ( const quotient< polynomial< C, V >, polynomial< C, V > > &  x1,
const C &  x2 
) [inline]

Definition at line 35 of file quotient_polynomial.hpp.

References denominator(), numerator(), and Quotient.

                                             {
  return Quotient (numerator (x1) - x2 * denominator (x1),
                   denominator (x1));
}
polynomial<C,V> mmx::operator- ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Definition at line 484 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

                                                        {
  typedef implementation<polynomial_linear,V> Pol;
  nat m= min (N(P1), N(P2));
  nat n= max (N(P1), N(P2));
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P1));
  Pol::sub (r, seg (P1), seg (P2), m);
  if (N(P1) > m) Pol::copy (r+m, seg(P1)+m, n-m);
  if (N(P2) > m) Pol::neg  (r+m, seg(P2)+m, n-m);
  return Polynomial (r, n, l, CF(P1));
}
matrix<C,V> mmx::operator- ( const matrix< C, V > &  m)

Definition at line 572 of file matrix.hpp.

                                         {
  return unary_map<neg_op> (m); }
quotient_series<Series,Monomial> mmx::operator- ( const quotient_series< Series, Monomial > &  f,
const quotient_series< Series, Monomial > &  g 
)

Definition at line 163 of file quotient_series.hpp.

References gcd(), Monomial, and Quotient_series.

                                                                {
  if (f->m == g->m) return Quotient_series (f->f - g->f, f->m);
  else {
    Monomial m= gcd (f->m, g->m);
    return Quotient_series (f->f * (f->m / m) - g->f * (g->m / m), m);
  }
}
polynomial<C,V> mmx::operator- ( const C &  c,
const polynomial< C, V > &  P 
)

Definition at line 498 of file polynomial.hpp.

References Polynomial.

                                                             {
  return Polynomial (c) - P; }
algebraic<C,Extension> mmx::operator- ( const algebraic< C, Extension > &  x1b,
const algebraic< C, Extension > &  x2b 
)

Definition at line 214 of file algebraic.hpp.

References Algebraic, field(), upgrade(), and value().

                                                        {
  Algebraic x1= x1b, x2= x2b;
  upgrade (x1, x2);
  return Algebraic (field (x1), value (x1) - value (x2));
}
series<C,V> mmx::operator- ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 706 of file series.hpp.

References is_exact_zero().

                                              {
  if (is_exact_zero (f)) return -g;
  if (is_exact_zero (g)) return f;
  return binary_series<sub_op> (f, g);
}
quotient< polynomial<C,V> , polynomial<C,V> > mmx::operator- ( const C &  x1,
const quotient< polynomial< C, V >, polynomial< C, V > > &  x2 
) [inline]

Definition at line 41 of file quotient_polynomial.hpp.

References denominator(), numerator(), and Quotient.

                                             {
  return Quotient (x1 * denominator (x2) - numerator (x2),
                   denominator (x2));
}
unknown<C,V> mmx::operator- ( const unknown< C, V > &  c1,
const unknown< C, V > &  c2 
)

Definition at line 234 of file series_implicit.hpp.

References C, known(), and UC.

                                        {
  //mmerr << "    minus " << c1 << ", " << c2 << "\n";
  if (c1->i1 == c1->i2) return (-c2) + known (c1);
  if (c2->i1 == c2->i2) return c1 + (-known (c2));
  ASSERT (c1->f == c2->f, "incompatible unknown coefficients");
  nat i1= min (c1->i1, c2->i1);
  nat i2= max (c1->i2, c2->i2);
  C* s= mmx_new<C> (i2-i1);
  for (nat i=i1; i<i2; i++)
    s[i-i1]=
      (i >= c1->i1 && i < c1->i2? c1->s[i - c1->i1]: C(0)) -
      (i >= c2->i1 && i < c2->i2? c2->s[i - c2->i1]: C(0));
  return UC (c1->f, c1->b - c2->b, s, i1, i2);
}
series<C,V> mmx::operator- ( const series< C, V > &  f) [inline]

Definition at line 700 of file series.hpp.

References is_exact_zero().

                             {
  if (is_exact_zero (f)) return f;
  return unary_series<neg_op> (f);
}
series<C,V> mmx::operator- ( const C &  c,
const series< C, V > &  f 
) [inline]

Definition at line 713 of file series.hpp.

References is_exact_zero(), and Series.

                                         {
  if (is_exact_zero (c)) return -f;
  if (is_exact_zero (f)) return Series (c);
  return binary_series<sub_op> (Series (c), f);
}
unknown<C,V> unknown<C,V> mmx::operator- ( const unknown< C, V > &  c)

Definition at line 168 of file series_implicit.hpp.

References C, is_exact_zero(), and UC.

                         {
  //mmerr << "    negate " << c << "\n";
  if (is_exact_zero (c)) return c;
  nat n= c->i2 - c->i1;
  C* s= mmx_new<C> (n);
  for (nat i=0; i<n; i++)
    s[i]= -c->s[i];
  return UC (c->f, -c->b, s, c->i1, c->i2);
}
polynomial<C,V> mmx::operator- ( const polynomial< C, V > &  P)

Definition at line 444 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

                                 {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= N(P);
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::neg (r, seg (P), n);
  return Polynomial (r, n, l, CF(P));
}
algebraic<C,Extension> mmx::operator- ( const algebraic< C, Extension > &  x) [inline]

Definition at line 209 of file algebraic.hpp.

References Algebraic, field(), and value().

                                {
  return Algebraic (field (x), -value (x));
}
matrix<C,V> mmx::operator- ( const matrix< C, V > &  m,
const matrix< C, V > &  n 
)

Definition at line 580 of file matrix.hpp.

                                                          {
  return binary_map<sub_op> (m, n); }
quotient<NT,DT> mmx::operator- ( const quotient< NT, DT > &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 220 of file quotient.hpp.

References denominator(), DT, gcd(), NT, numerator(), and Quotient.

                                                    {
  DT g  = gcd (denominator (x1), denominator(x2));
  DT y1 = denominator (x1) / g;
  DT y2 = denominator (x2) / g;
  NT n  = numerator(x1) * y2 - numerator(x2) * y1;
  DT h  = gcd (g, n);
  return Quotient (n / h, (g / h) * y1 * y2);
}
quotient<NT,DT> mmx::operator- ( const NT &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 236 of file quotient.hpp.

References denominator(), numerator(), and Quotient.

                                              {
  return Quotient (x1 * denominator (x2) - numerator (x2),
                   denominator (x2));
}
matrix<C,V>& mmx::operator-= ( matrix< C, V > &  m,
const matrix< C, V > &  n 
)

Definition at line 598 of file matrix.hpp.

                                                      {
  return unary_set<sub_op> (m, n); }
quotient_series<Series,Monomial> mmx::operator/ ( const quotient_series< Series, Monomial > &  f,
const typename scalar_type_helper< Series >::val &  c 
)

Definition at line 219 of file quotient_series.hpp.

References Quotient_series.

                                                  {
  return Quotient_series (f->f / c, f->m);
}
algebraic<C,Extension> mmx::operator/ ( const C &  x1,
const algebraic< C, Extension > &  x2 
)

Definition at line 258 of file algebraic.hpp.

References Algebraic, div(), field(), and value().

                                              {
  return Algebraic (field (x2), div (field (x2), x1, value (x2)));
}
quotient<NT,DT> mmx::operator/ ( const quotient< NT, DT > &  x,
const DT &  c 
) [inline]

Definition at line 270 of file quotient.hpp.

References denominator(), DT, gcd(), numerator(), and Quotient.

                                            {
  ASSERT (c != 0, "division by zero");
  DT g= gcd (numerator (x), c);
  return Quotient (numerator (x) / g, denominator (x) * (c / g));
}
series<C,V> mmx::operator/ ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 1075 of file series.hpp.

                                         {
  typedef implementation<series_divide,V> Ser;
  return Ser::ser_rdiv_sc (f, c);
}
quotient< polynomial<C,V> , polynomial<C,V> > mmx::operator/ ( const quotient< polynomial< C, V >, polynomial< C, V > > &  x,
const C &  c 
) [inline]

Definition at line 63 of file quotient_polynomial.hpp.

References denominator(), numerator(), and Quotient.

                                           {
  ASSERT (c != 0, "division by zero");
  return Quotient (numerator (x) / c, denominator (x));
}
quotient< polynomial<C,V> , polynomial<C,V> > mmx::operator/ ( const C &  c,
const quotient< polynomial< C, V >, polynomial< C, V > > &  x 
) [inline]

Definition at line 57 of file quotient_polynomial.hpp.

References denominator(), numerator(), and Quotient.

                                           {
  ASSERT (numerator (x) != 0, "division by zero");
  return Quotient (c * denominator (x), numerator (x));
}
polynomial<C,V> mmx::operator/ ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Definition at line 583 of file polynomial.hpp.

References C, CF(), div(), N(), Polynomial, and seg().

                                                        {
  typedef implementation<polynomial_exact_divide,V> Pol;
  nat n1= N(P1), n2= N(P2);
  ASSERT (n2 != 0, "division by zero");
  if (n1 < n2) return Polynomial (CF(P1));
  nat lq= aligned_size<C,V> (n1-n2+1);
  C* q= mmx_formatted_new<C> (lq, CF(P1));
  Pol::div (q, seg (P1), seg (P2), n1, n2);
  return Polynomial (q, n1-n2+1, lq, CF(P1));
}
quotient<NT,DT> mmx::operator/ ( const NT &  c,
const quotient< NT, DT > &  x 
) [inline]

Definition at line 262 of file quotient.hpp.

References denominator(), DT, gcd(), numerator(), and Quotient.

                                            {
  // assumes NT = DT
  ASSERT (numerator (x) != 0, "division by zero");
  DT g= gcd (c, numerator (x));
  return Quotient ((c / g) * denominator (x), numerator (x) / g);
}
quotient_series<Series,Monomial> mmx::operator/ ( const Monomial &  m,
const quotient_series< Series, Monomial > &  f 
)

Definition at line 212 of file quotient_series.hpp.

References C, Monomial, monomial_val(), and Quotient_series.

                                                         {
  Monomial v= monomial_val (f);
  if (v != Monomial (1)) return (m/v) / (f/v);
  return Quotient_series (C(1) / f->f, m / f->m);
}
quotient_series<Series,Monomial> mmx::operator/ ( const quotient_series< Series, Monomial > &  f,
const Monomial &  m 
)

Definition at line 207 of file quotient_series.hpp.

References Quotient_series.

                                                         {
  return Quotient_series (f->f, f->m / m);
}
series<C,V> mmx::operator/ ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 1081 of file series.hpp.

                                              {
  typedef implementation<series_divide,V> Ser;
  return Ser::ser_div (f, g);
}
series<C,V> mmx::operator/ ( const C &  c,
const series< C, V > &  f 
) [inline]

Definition at line 1087 of file series.hpp.

References is_exact_zero(), and Series.

                                         {
  typedef implementation<series_divide,V> Ser;
  if (is_exact_zero (c)) return Series (get_format (c));
  return Ser::ser_div (Series (c), f);
}
quotient_series<Series,Monomial> mmx::operator/ ( const quotient_series< Series, Monomial > &  f,
const quotient_series< Series, Monomial > &  g 
)

Definition at line 231 of file quotient_series.hpp.

References Monomial, monomial_val(), and Quotient_series.

                                                                {
  Monomial v= monomial_val (g);
  if (v != Monomial (1)) return (f/v) / (g/v);
  return Quotient_series (f->f / g->f, f->m);
}
algebraic<C,Extension> mmx::operator/ ( const algebraic< C, Extension > &  x1b,
const algebraic< C, Extension > &  x2b 
) [inline]

Definition at line 268 of file algebraic.hpp.

References Algebraic, div(), field(), upgrade(), and value().

                                                        {
  Algebraic x1= x1b, x2= x2b;
  upgrade (x1, x2);
  return Algebraic (field (x1), div (field (x1), value (x1), value (x2)));
}
matrix<C,V> mmx::operator/ ( const C &  c,
const matrix< C, V > &  m 
)

Definition at line 1163 of file matrix.hpp.

References invert().

                                                     {
  return c * invert (m); }
quotient_series<Series,Monomial> mmx::operator/ ( const typename scalar_type_helper< Series >::val &  c,
const quotient_series< Series, Monomial > &  f 
)

Definition at line 224 of file quotient_series.hpp.

References Monomial, monomial_val(), and Quotient_series.

                                                  {
  Monomial v= monomial_val (f);
  if (v != Monomial (1)) return (c / (f/v)) / v;
  return Quotient_series (c / f->f, Monomial (1) / f->m);
}
matrix<C,V> mmx::operator/ ( const matrix< C, V > &  m,
const C &  c 
)

Definition at line 590 of file matrix.hpp.

                                                     {
  return binary_map_scalar<rdiv_op> (m, c); }
quotient<NT,DT> mmx::operator/ ( const quotient< NT, DT > &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 277 of file quotient.hpp.

References denominator(), DT, gcd(), NT, numerator(), and Quotient.

                                                    {
  // assumes NT = DT
  ASSERT (numerator (x2) != 0, "division by zero");
  NT g1= gcd (numerator (x1), numerator (x2));
  DT g2= gcd (denominator (x1), denominator (x2));
  return Quotient ((numerator (x1) / g1) * (denominator (x2) / g2),
                   (denominator (x1) / g2) * (numerator (x2) / g1));
}
polynomial<C,V> mmx::operator/ ( const polynomial< C, V > &  P,
const C &  c 
)

Definition at line 573 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

                                             {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= N(P);
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::div_sc (r, seg (P), c, n);
  return Polynomial (r, n, l, CF(P));
}
algebraic<C,Extension> mmx::operator/ ( const algebraic< C, Extension > &  x1,
const C &  x2 
) [inline]

Definition at line 263 of file algebraic.hpp.

References Algebraic, field(), and value().

                                              {
  return Algebraic (field (x1), value (x1) / x2);
}
polynomial<C,V> mmx::operator/ ( const C &  c,
const polynomial< C, V > &  P 
) [inline]

Definition at line 765 of file polynomial.hpp.

References Polynomial.

                                                                    {
  return Polynomial (c) / P; }
matrix<C,V>& mmx::operator/= ( matrix< C, V > &  m,
const C &  x 
)

Definition at line 602 of file matrix.hpp.

                                                 {
  return unary_set_scalar<rdiv_op> (m, x); }
bool mmx::operator<= ( const matrix< C, V > &  m,
const matrix< C, V > &  n 
)

Definition at line 604 of file matrix.hpp.

                                                         {
  return binary_test<lesseq_op> (m, n); }
bool mmx::operator<= ( const matrix< C, V > &  m,
const C &  c 
)

Definition at line 615 of file matrix.hpp.

References cols(), Matrix, and rows().

                                          {
  return m <= Matrix (c, rows (m), cols (m)); }
bool mmx::operator== ( const algebraic< C, Extension > &  x1,
const algebraic< C, Extension > &  x2 
) [inline]

Definition at line 126 of file algebraic.hpp.

References is_zero().

                                                                        {
  return is_zero (x1 - x2); }
bool mmx::operator== ( const series< C, V > &  f1,
const series< C, V > &  f2 
)

Definition at line 294 of file series.hpp.

                                                           {
  return binary_test<equal_op> (f1, f2); }
bool mmx::operator== ( const quotient< NT, DT > &  x1,
const quotient< NT, DT > &  x2 
) [inline]

Definition at line 142 of file quotient.hpp.

References denominator(), and numerator().

                                                                      {
  return numerator (x1) * denominator (x2) ==
         numerator (x2) * denominator (x1); }
bool mmx::operator== ( const algebraic_extension< C > &  x,
const algebraic_extension< C > &  y 
) [inline]

Definition at line 58 of file algebraic_extension.hpp.

                                                                      {
  return (*x) == (*y); }
bool mmx::operator== ( const matrix< C, V > &  m,
const K &  c 
)

Definition at line 609 of file matrix.hpp.

References cols(), Matrix, and rows().

                                          {
  return m == Matrix (c, rows (m), cols (m)); }
bool mmx::operator== ( const quotient_series< Series, Monomial > &  f,
const quotient_series< Series, Monomial > &  g 
) [inline]

Definition at line 93 of file quotient_series.hpp.

References gcd(), and Monomial.

                                                                 {
  Monomial m= gcd (f->m, g->m);
  return f->f * (g->m / m) == g->f * (f->m / m); }
bool mmx::operator== ( const algebraic_number_extension< C, Ball > &  x,
const algebraic_number_extension< C, Ball > &  y 
) [inline]

Definition at line 78 of file algebraic_number.hpp.

                                                              {
  return (*x) == (*y); }
bool mmx::operator>= ( const matrix< C, V > &  m,
const matrix< C, V > &  n 
)

Definition at line 606 of file matrix.hpp.

                                                         {
  return binary_test<gtreq_op> (m, n); }
bool mmx::operator>= ( const matrix< C, V > &  m,
const C &  c 
)

Definition at line 618 of file matrix.hpp.

References cols(), Matrix, and rows().

                                          {
  return m >= Matrix (c, rows (m), cols (m)); }
algebraic_number mmx::over_i ( const algebraic_number &  z) [inline]

Definition at line 402 of file algebraic_number.hpp.

Referenced by GLUE_59(), and Im().

                                   {
  return -z * imaginary_cst<algebraic_number> ();
}
void mmx::pade ( const polynomial< C, V > &  P,
nat  n,
nat  k,
polynomial< C, V > &  Num,
polynomial< C, V > &  Den 
) [inline]
void mmx::permute_columns ( matrix< C, V > &  m,
const permutation &  p 
)

Definition at line 1013 of file matrix.hpp.

References cols(), is_a_scalar(), rows(), seg(), and tab().

                                                  {
  // replace m by m * as_matrix (p)
  typedef implementation<matrix_permute,V> Mat;
  if (is_a_scalar (m)) return;
  nat rs= rows (m), cs= cols (m);
  Mat::col_permute (tab (m), seg (*p), rs, cs);
}
void mmx::permute_rows ( matrix< C, V > &  m,
const permutation &  p 
)

Definition at line 1022 of file matrix.hpp.

References cols(), is_a_scalar(), rows(), seg(), and tab().

                                               {
  // replace m by transpose (as_matrix (p)) * m
  typedef implementation<matrix_permute,V> Mat;
  if (is_a_scalar (m)) return;
  nat rs= rows (m), cs= cols (m);
  Mat::row_permute (tab (m), seg (*p), rs, cs);
}
int mmx::pexponent ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
) [inline]

Pseudo division lc(P2)^pexponent (P1,P2) P1 = pquo(P1,P2) * P2 + prem(P1,P2)

Definition at line 715 of file polynomial.hpp.

References deg().

                                                       {
  return max (0, deg (P1) - deg (P2) + 1);
}
polynomial< C > polynomial_reverse ( const vector< C > &  v)

Definition at line 11 of file glue_algebraic_generic.cpp.

References reverse().

Referenced by GLUE_1(), and GLUE_52().

                                            {
      return polynomial<C> (reverse (v)); }
series<C,V> mmx::pow ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 60 of file series_elementary.hpp.

References exp(), and log().

                                       {
  return exp (g * log (f));
}
series<C,V> mmx::pow ( const series< C, V > &  f,
const C &  c 
) [inline]
Examples:
matrix_test.cpp, and series_test.cpp.

Definition at line 55 of file series_elementary.hpp.

References exp(), and log().

Referenced by flatten(), GLUE_33(), and GLUE_48().

                                  {
  return exp (c * log (f));
}
matrix<C> mmx::pow_matrix ( const algebraic_extension< C > &  ext1,
const algebraic_extension< C > &  ext2,
const vector< C > &  v 
)

Definition at line 201 of file algebraic_extension.hpp.

References CF(), deg(), and mul_matrix().

Referenced by join(), and pow_matrix().

                                                                              {
  // let p (x1, x2) be the bivariate polynomial represented by v
  // return the matrix whose rows represent the powers p (x1, x2)^i
  nat d1= deg (ext1.mp), d2= deg (ext2.mp);
  matrix<C> m= mul_matrix (ext1, ext2, v);
  matrix<C> r (promote (0, CF(ext1)), d1*d2+1, d1*d2);
  vector<C> aux= fill<C> (promote (0, CF(ext1)), d1*d2);
  aux[0]= promote (1, CF(ext1));
  for (nat i1=0; i1<=d1*d2; i1++) {
    for (nat i2=0; i2<d1*d2; i2++)
      r (i1, i2)= aux[i2];
    aux= aux * m;
  }
  return r;
}
matrix<C> mmx::pow_matrix ( const algebraic_extension< C > &  ext1,
const algebraic_extension< C > &  ext2 
)

Definition at line 218 of file algebraic_extension.hpp.

References CF(), deg(), pow_matrix(), and rank().

                                                          {
  // return matrix whose rows represent the powers of a primitive element
  nat d1= deg (ext1.mp), d2= deg (ext2.mp);
  vector<C> v= fill<C> (promote (0, CF(ext1)), d1*d2);
  for (nat i=1; i<1000; i++) {
    v[1]= promote (1, CF(ext1)); v[d2]= promote ((int) i, CF(ext1));
    matrix<C> m= pow_matrix (ext1, ext2, v);
    if (rank (m) == d1*d2) return m;
  }
  ERROR ("unexpected situation");
}
polynomial<C,V> mmx::pquo ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Definition at line 720 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

                                                  {
  typedef implementation<polynomial_divide,V> Pol;
  nat n1= N(P1), n2= N(P2);
  if (n1 < n2 || n2 == 0) return Polynomial (CF(P1));
  nat lq= aligned_size<C,V> (n1-n2+1);
  nat lr= aligned_size<C,V> (n1);
  C* q= mmx_formatted_new<C> (lq, CF(P1));
  C* r= mmx_formatted_new<C> (lr, CF(P1));
  Pol::copy (r, seg (P1), n1);
  Pol::pquo_rem (q, r, seg (P2), n1, n2);
  mmx_delete<C> (r, lr);
  return Polynomial (q, n1-n2+1, lq, CF(P1));
}
xnat mmx::precision ( const matrix< C, V > &  m) [inline]

Definition at line 657 of file matrix.hpp.

Referenced by increase_precision(), and precision().

                                             {
  return big<min_precision_op> (m); }
nat mmx::precision ( const series< C, V > &  f) [inline]

Definition at line 1197 of file series.hpp.

References precision().

                            {
  return precision (f[0]);
}
xnat mmx::precision ( const polynomial< C, V > &  p) [inline]

Definition at line 1381 of file polynomial.hpp.

                                                 {
  return big<min_precision_op> (p); }
nat mmx::precision ( const quotient< NT, DT > &  x) [inline]

Definition at line 102 of file quotient.hpp.

References denominator(), numerator(), and precision().

                                              {
  return max (precision (numerator (x)), precision (denominator (x))); }
polynomial<C,V> mmx::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.

Definition at line 751 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

                                                                 {
  typedef implementation<polynomial_divide,V> Pol;
  nat n1= N(P1), n2= N(P2);
  if (n1 < n2 || n2 == 0) return Polynomial (CF(P1));
  nat lq= aligned_size<C,V> (n1-n2+1);
  nat lr= aligned_size<C,V> (n1);
  C* q= mmx_formatted_new<C> (lq, CF(P1));
  C* r= mmx_formatted_new<C> (lr, CF(P1));
  Pol::copy (r, seg (P1), n1);
  Pol::pquo_rem (q, r, seg (P2), n1, n2);
  Q= Polynomial (q, n1-n2+1, lq, CF(P1));
  return Polynomial (r, n2 - 1, lr, CF(P1));
}
vector< polynomial<C,V> > mmx::prem ( const polynomial< C, V > &  p,
const vector< polynomial< C, V > > &  q 
) [inline]

Definition at line 1114 of file polynomial.hpp.

                                                        {
  typedef implementation<polynomial_evaluate,V> Pol;
  return Pol::multi_prem (p, q);
}
polynomial<C,V> mmx::prem ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)
Examples:
polynomial_int_test.cpp, polynomial_integer_test.cpp, polynomial_modular_test.cpp, and polynomial_polynomial_test.cpp.

Definition at line 735 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

Referenced by implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::half_subresultant(), implementation< polynomial_evaluate, V, polynomial_gcd_ring_dicho_inc< W > >::multi_gcd(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_ducos_inc< BV > >::subresultant_sequence(), and implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_naive_inc< W > >::subresultant_sequence().

                                                  {
  typedef implementation<polynomial_divide,V> Pol;
  nat n1= N(P1), n2= N(P2);
  if (n1 < n2 || n2 == 0) return P1;
  nat lq= aligned_size<C,V> (n1-n2+1);
  nat lr= aligned_size<C,V> (n1);
  C* q= mmx_formatted_new<C> (lq, CF(P1));
  C* r= mmx_formatted_new<C> (lr, CF(P1));
  Pol::copy (r, seg (P1), n1);
  Pol::pquo_rem (q, r, seg (P2), n1, n2);
  mmx_delete<C> (q, lq);
  return Polynomial (r, n2 - 1, lr, CF(P1));
}
polynomial<C,V> mmx::primitive_part ( const polynomial< C, V > &  P,
C &  c 
) [inline]

Definition at line 784 of file polynomial.hpp.

References C, CF(), contents(), N(), Polynomial, and seg().

Referenced by implementation< polynomial_gcd, V, polynomial_ring_naive< W > >::gcd(), GLUE_39(), GLUE_47(), and primitive_part().

                                           {
  typedef implementation<polynomial_linear,V> Pol;
  c= contents (P);
  nat n= N(P);
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::div_sc (r, seg (P), c, n);
  return Polynomial (r, n, l, CF(P));
}
polynomial<C,V> mmx::primitive_part ( const polynomial< C, V > &  P) [inline]

Definition at line 795 of file polynomial.hpp.

References C, and primitive_part().

                                     {
  C c;
  return primitive_part (P, c);
}
C mmx::primitive_root ( nat  n,
nat  i 
)

Definition at line 64 of file fft_roots.hpp.

References primitive_root_helper< C >::op().

                              {
  return primitive_root_helper<C>::op (n, i);
}
I mmx::primitive_root_max_int ( nat  b,
p,
nat &  k,
I &  m 
)

Definition at line 95 of file fft_roots.hpp.

References I, Modular, Modulus, and primitive_root_max_order_int().

Referenced by primitive_root_helper_modular_int< long int, V, W >::op().

                                                  {
  // root of maximal order k for radix b modulo p
  typedef modulus<I, modulus_int_preinverse<8*sizeof(I)> > Modulus;
  typedef modular<Modulus> Modular;
  k= primitive_root_max_order_int (b, p, m);
  if (k == 1) return I (1);
  Modulus tmp= Modular::get_modulus ();
  Modular::set_modulus (p);
  Modular v;
  for (I x = 1; x < p; x++) {
    v = binpow (Modular (x), (nat) m);
    if (v == 1) continue;
    if (binpow (v, k / b) != 1) break;
  }
  Modular::set_modulus (tmp);
  return * v;
}
nat mmx::primitive_root_max_order ( nat  b)

Definition at line 69 of file fft_roots.hpp.

References primitive_root_helper< C >::max_order().

                                 {
  return primitive_root_helper<C>::max_order (b);
}
nat mmx::primitive_root_max_order_int ( nat  b,
p,
I &  m 
)

Definition at line 86 of file fft_roots.hpp.

Referenced by primitive_root_helper_modular_int< long int, V, W >::max_order(), and primitive_root_max_int().

                                                {
  // p must be nonnegative
  nat k= 0;
  m= (nat) (p-1);
  while (m % b == 0) { k++; m /= b; }
  return ((nat) (p-1)) / m;
}
quotient_series<Series,Monomial> mmx::project ( const quotient_series< Series, Monomial > &  f,
const list< Monomial > &  l 
)

Definition at line 122 of file quotient_series.hpp.

References Quotient_series.

                                                                        {
  return Quotient_series (project (f->f, stair_mul (1/f->m, l)), f->m); }
modular< modulus<C,V> ,W> mmx::pth_root ( const modular< modulus< C, V >, W > &  a) [inline]
Examples:
p_adic_test.cpp.

Definition at line 128 of file root_modular.hpp.

Referenced by GLUE_28(), and implementation< series_pth_root, U, series_carry_p_adic< W > >::unsep_root().

                            {
  // p-th root of a
  return a;
}
series<C,V> mmx::pth_root ( const series< C, V > &  f) [inline]

Definition at line 1150 of file series.hpp.

                           {
  typedef implementation<series_pth_root,V> Ser;
  return Ser::unsep_root (f);
}
polynomial<C,V> mmx::q_difference ( const polynomial< C, V > &  P,
const K &  q 
)
Examples:
polynomial_test.cpp.

Definition at line 1080 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

Referenced by GLUE_136(), GLUE_30(), GLUE_32(), GLUE_38(), GLUE_39(), GLUE_40(), GLUE_91(), and implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::shift().

                                               {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= N(P);
  if (n <= 1) return P;
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::q_difference (r, seg (P), q, n);
  return Polynomial (r, n, l, CF(P));
}
series<C,V> mmx::q_difference ( const series< C, V > &  f,
const C &  q 
) [inline]

Definition at line 1009 of file series.hpp.

References CF(), is_exact_zero(), Series, and Series_rep.

                                           {
  if (is_exact_zero (f)) return Series (CF(f));
  return (Series_rep*) new q_difference_series_rep<C,V> (f, q);
}
series<C,V> mmx::quo ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 1099 of file series.hpp.

                                  {
  typedef implementation<series_divide,V> Ser;
  return Ser::ser_rquo_sc (f, c);
}
series<C,V> mmx::quo ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 1105 of file series.hpp.

                                       {
  typedef implementation<series_divide,V> Ser;
  return Ser::ser_quo (f, g);
}
polynomial<C,V> mmx::quo ( const polynomial< C, V > &  P,
const C &  c 
)

Definition at line 608 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

                                      {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= N(P);
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::quo_sc (r, seg (P), c, n);
  return Polynomial (r, n, l, CF(P));
}
polynomial<C,V> mmx::quo ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Definition at line 628 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

                                                 {
  typedef implementation<polynomial_divide,V> Pol;
  nat n1= N(P1), n2= N(P2);
  if (n1 < n2 || n2 == 0) return Polynomial (CF(P1));
  nat lq= aligned_size<C,V> (n1-n2+1);
  nat lr= aligned_size<C,V> (n1);
  C* q= mmx_formatted_new<C> (lq, CF(P1));
  C* r= mmx_formatted_new<C> (lr, CF(P1));
  Pol::copy (r, seg (P1), n1);
  Pol::quo_rem (q, r, seg (P2), n1, n2);
  mmx_delete<C> (r, lr);
  return Polynomial (q, n1-n2+1, lq, CF(P1));
}
polynomial<Radius_type(C),V> mmx::radius ( const polynomial< C, V > &  p)

Definition at line 1400 of file polynomial.hpp.

                                                    {
  return unary_map<radius_op> (p); }
matrix<Radius_type(C),V> mmx::radius ( const matrix< C, V > &  m)

Definition at line 676 of file matrix.hpp.

Referenced by improve_zero().

                                            {
  return unary_map<radius_op> (m); }
algebraic_extension<C> mmx::ramify ( const algebraic_extension< C > &  ext,
nat  p 
)

Definition at line 336 of file algebraic_extension.hpp.

References dilate(), and Extension.

Referenced by ramify(), and root().

                                     {
  return Extension (dilate (ext.mp, p));
}
algebraic_number_extension<C,Ball> mmx::ramify ( const algebraic_number_extension< C, Ball > &  ext,
nat  p 
)

Definition at line 378 of file algebraic_number.hpp.

References exp(), Field, log(), ramify(), and sqrt().

                                 {
  Ball z= (p == 2? sqrt (ext.x): exp (log (ext.x) / ((int) p)));
  return Field (ramify (ext.ext, p), z);
}
matrix<C,V> mmx::range ( const matrix< C, V > &  m,
nat  r1,
nat  c1,
nat  r2,
nat  c2 
) [inline]

Definition at line 824 of file matrix.hpp.

References CF(), cols(), is_a_scalar(), Matrix, rows(), and tab().

                                                        {
  typedef implementation<matrix_linear,V> Mat;
  if (is_a_scalar (m)) return Matrix (m.scalar(), r2-r1, c2-c1);
  nat nrows= rows (m), ncols= cols (m);
  nat l= aligned_size<C,V> ((r2-r1) * (c2-c1));
  C*  r= mmx_formatted_new<C> (l, CF(m));
  Mat::get_range (r, tab (m), r1, c1, r2, c2, nrows, ncols);
  return Matrix (r, r2-r1, c2-c1, CF(m));
}
polynomial<C,V> mmx::range ( const polynomial< C, V > &  P,
nat  start,
nat  end 
)

Definition at line 1216 of file polynomial.hpp.

References C, CF(), and Polynomial.

                                                {
  typedef implementation<polynomial_linear,V> Pol;
  nat l= aligned_size<C,V> (end-start);
  C* r= mmx_formatted_new<C> (l, CF(P));
  for (nat i=start; i<end; i++) r[i-start]= P[i];
  return Polynomial (r, end-start, l, CF(P));
}
polynomial<C, typename series_polynomial_helper<C,V>::PV> mmx::range ( const series< C, V > &  f,
nat  start,
nat  end 
)

Definition at line 236 of file series.hpp.

References C, CF(), and Polynomial.

                                            {
  typedef typename series_polynomial_helper<C,V>::PV PV;
  nat n= (end >= start? end - start: 0);
  nat l= aligned_size<C,PV> (n);
  C* coeffs= mmx_formatted_new<C> (l, CF(f));
  if (end>start) (void) f[end-1];
  for (nat i=0; i<n; i++) coeffs[i]= f[i + start];
  return Polynomial (coeffs, n, l, CF(f));
}
nat mmx::rank ( const matrix< C, V > &  m)
Examples:
matrix_test.cpp, and pivot_test.cpp.

Definition at line 1189 of file matrix.hpp.

References cols(), is_non_scalar(), rows(), and tab().

Referenced by GLUE_111(), GLUE_41(), GLUE_66(), and pow_matrix().

                       {
  typedef implementation<matrix_image,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  return Mat::rank (tab(m), rows(m), cols(m));
}
algebraic_real mmx::Re ( const algebraic_number &  z) [inline]

Definition at line 422 of file algebraic_number.hpp.

References conj(), algebraic_number_extension< C, Ball >::ext, field(), normalize(), value(), and algebraic_number_extension< C, Ball >::x.

Referenced by abs(), GLUE_55(), and Im().

                               {
  algebraic_number x= normalize ((z + conj (z)) / rational (2));
  algebraic_complex_extension cext= field (x);
  algebraic_real_extension    rext (cext.ext, Re (cext.x));
  return algebraic_real (rext, value (x));
}
matrix<Real_type(C),V> mmx::Re ( const matrix< C, V > &  m)

Definition at line 670 of file matrix.hpp.

{ return unary_map<Re_op> (m); }
polynomial<Real_type(C),V> mmx::Re ( const polynomial< C, V > &  p)

Definition at line 1394 of file polynomial.hpp.

{ return unary_map<Re_op> (p); }
const C& mmx::read ( const matrix< C, V > &  m,
nat  i,
nat  j 
) [inline]
vector< series<M,V> > mmx::rec_add ( const vector< series< M, V > > &  p,
const vector< series< M, V > > &  q 
) [inline]

Definition at line 476 of file series_carry_naive.hpp.

Referenced by system_root_series_rep< M, V, W >::_eps(), and root_series_rep< M, V >::_eps().

                                                           {
  return p + q;
}
vector< series<M,V> > mmx::rec_cst ( const series< M, V > &  p) [inline]

Definition at line 567 of file series_carry_naive.hpp.

References CF(), rec_lin(), and Series.

Referenced by system_root_series_rep< M, V, W >::_eps(), and root_series_rep< M, V >::_eps().

                          {
  return rec_lin (p, Series (CF(p)));
}
vector< series<M,V> > mmx::rec_cst ( const series< M, V > &  p,
nat  n 
) [inline]

Definition at line 572 of file series_carry_naive.hpp.

References CF(), rec_lin(), and Series.

                                 {
  return rec_lin (p, vector<Series> (Series (CF(p)), n));
}
vector< series<M,V> > mmx::rec_lin ( const series< M, V > &  a,
const vector< series< M, V > > &  b 
) [inline]

Definition at line 562 of file series_carry_naive.hpp.

References CF(), and Series.

                                                   {
  return vec<Series> (Series (CF(a)), a) << b;
}
vector< series<M,V> > mmx::rec_lin ( const series< M, V > &  a,
const series< M, V > &  b 
) [inline]

Definition at line 557 of file series_carry_naive.hpp.

References CF(), and Series.

Referenced by system_root_series_rep< M, V, W >::_eps(), root_series_rep< M, V >::_eps(), and rec_cst().

                                           {
  return vec<Series> (Series (CF(a)), a, b);
}
vector< series<M,V> > mmx::rec_minus ( const vector< series< M, V > > &  p) [inline]

Definition at line 481 of file series_carry_naive.hpp.

Referenced by system_root_series_rep< M, V, W >::_eps(), and root_series_rep< M, V >::_eps().

                                    {
  return -p;
}
vector< series<M,V> > mmx::rec_minus ( const vector< series< M, V > > &  p,
const vector< series< M, V > > &  q 
) [inline]

Definition at line 486 of file series_carry_naive.hpp.

                                                             {
  return p - q;
}
vector< series<M,V> > mmx::rec_prod ( const vector< series< M, V > > &  p,
const vector< series< M, V > > &  q,
const vector< series< M, V > > &  y 
) [inline]

Definition at line 507 of file series_carry_naive.hpp.

References as_series(), as_vector(), lshiftz(), lshiftz_series_vector(), N(), range(), rshiftz(), and Series.

                                   {
  nat l= N(p);
  ASSERT (l == N(q) && (l-2) == N(y), "Wrong size of arguments");
  const Series& ep=p[0], ap=p[1], eq=q[0], aq=q[1];
  vector<Series> bp = range (p, 2, l);
  vector<Series> bq = range (q, 2, l);
  //Beware of as_vector (rshiftz (y)) which call
  // as_vector (y, N(f[1]))
  vector<Series> ry = as_vector (rshiftz (as_series (y)), N(y));
  vector<Series> lry = as_vector (lshiftz_series_vector
                                  (rshiftz (as_series (y)), l-2));
  Series tp = ap + dot (bp, lry);
  Series tq = aq + dot (bq, lry);
  Series er = (ep * eq + lshiftz (tp * rshiftz (eq, 2), 2) + 
               lshiftz (rshiftz (ep, 2) * tq, 2) +
               lshiftz (dot (ry, bp) * dot (bq, ry), 2));
  return (vec<Series> (er, ap * aq) << (ap * bq + bp * aq));
}
vector< series<M,V> > mmx::rec_prod ( const vector< series< M, V > > &  p,
const vector< series< M, V > > &  q,
const series< M, V > &  y 
) [inline]

Definition at line 491 of file series_carry_naive.hpp.

References lshiftz(), N(), rshiftz(), Series, and square().

Referenced by system_root_series_rep< M, V, W >::_eps(), and root_series_rep< M, V >::_eps().

                           {
  ASSERT (N(p) == N(q) && N(p) == 3, "Wrong size of arguments");
  const Series& ep=p[0], ap=p[1], eq=q[0], aq=q[1];
  const Series& bp=p[2], bq=q[2];
  Series ry = rshiftz (y); 
  Series tp = ap + bp * lshiftz (ry);
  Series tq = aq + bq * lshiftz (ry);
  //TODO stocker récursivement rshiftz (er, 2) plutôt 
  Series er = (ep * eq + lshiftz (tp * rshiftz (eq, 2), 2) + 
               lshiftz (rshiftz (ep, 2) * tq, 2) + 
               bp * bq * lshiftz (square (ry), 2));
  return vec<Series> (er, ap * aq, ap * bq + bp * aq);   
}
vector< series<M,V> > mmx::rec_square ( const vector< series< M, V > > &  p,
const series< M, V > &  y 
) [inline]

Definition at line 528 of file series_carry_naive.hpp.

References coefficients(), default_p_expansion, lshiftz(), M, N(), rshiftz(), Series, and square().

Referenced by system_root_series_rep< M, V, W >::_eps(), and root_series_rep< M, V >::_eps().

                                                      {
  ASSERT (N(p) == 3, "Wrong size of arguments");
  Series ser_2 (coefficients (as<default_p_expansion(M)> (2)));
  const Series& ep=p[0], ap=p[1], bp=p[2];
  Series ry = rshiftz (y); 
  Series tp = ap + bp * lshiftz (ry);
  Series er = (square (ep) + ser_2 * lshiftz (tp * rshiftz (ep, 2), 2) +
               lshiftz (square (bp * ry), 2));
  return vec<Series> (er, square (ap), ser_2 * ap * bp);   
}
vector< series<M,V> > mmx::rec_square ( const vector< series< M, V > > &  p,
const vector< series< M, V > > &  y 
) [inline]

Definition at line 541 of file series_carry_naive.hpp.

References as_series(), as_vector(), coefficients(), default_p_expansion, lshiftz(), lshiftz_series_vector(), M, N(), range(), rshiftz(), Series, and square().

                                                              {
  nat l= N(p);
  ASSERT ((l-2) == N(y), "Wrong size of arguments");
  Series ser_2 (coefficients (as<default_p_expansion(M)> (2)));
  const Series& ep=p[0], ap=p[1];
  vector<Series> bp = range (p, 2, l);
  vector<Series> ry = as_vector (rshiftz (as_series (y)), N(y));
  vector<Series> lry = as_vector (lshiftz_series_vector
                                  (rshiftz (as_series (y)), l-2));
  Series tp = ap + dot (bp, lry);
  Series er = (square (ep) + ser_2 * lshiftz (tp * rshiftz (ep, 2), 2) +
               lshiftz (square (dot (bp, ry)), 2));
  return (vec<Series> (er, square (ap)) << (ser_2 * ap * bp));
}
void mmx::reduce ( unknown< C, V > &  c1,
unknown< C, V > &  c2 
)

Definition at line 287 of file series_implicit.hpp.

References better_pivot(), C, is_exact_zero(), and UC.

Referenced by insert_and_reduce().

                        {
  // Triangulation of two "rows" c1 and c2
  // On exit, the simplest "row" is put into c1
  //mmerr << "    reduce " << c1 << ", " << c2 << "\n";
  if (is_exact_zero (c1)) return;
  if (is_exact_zero (c2)) { swap (c1, c2); return; }
  ASSERT (c1->f == c2->f, "incompatible unknown coefficients");
  if (c1->i2 < c2->i2) return;
  if (c2->i2 < c1->i2) { swap (c1, c2); return; }
  if (better_pivot (c1->s[c1->i2 - 1 - c1->i1],
                    c2->s[c2->i2 - 1 - c2->i1])) swap (c1, c2);
  C lambda= c1->s[c1->i2 - 1 - c1->i1] / c2->s[c2->i2 - 1 - c2->i1];
  nat i1= min (c1->i1, c2->i1);
  nat i2= c1->i2;
  C* s= mmx_new<C> (i2-i1-1);
  for (nat i= i1; i<i2-1; i++)
    s[i-i1]=
      (i >= c1->i1? c1->s[i - c1->i1]: C(0)) -
      lambda * (i >= c2->i1? c2->s[i - c2->i1]: C(0));
  c1= UC (c1->f, c1->b - lambda * c2->b, s, i1, i2-1);
}
matrix<C,V> mmx::rem ( const matrix< C, V > &  m,
const C &  c 
)
Examples:
polynomial_test.cpp, and series_test.cpp.

Definition at line 594 of file matrix.hpp.

Referenced by implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::_half_gcd(), annihilator(), compose(), DEFINE_VARIANT(), implementation< base_transform, V, base_signed< W > >::direct(), implementation< base_transform, V, base_naive >::direct(), implementation< base_transform, V, base_dicho< W > >::direct(), div(), divides(), GLUE_24(), GLUE_30(), GLUE_32(), GLUE_83(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::half_subresultant(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::half_subresultant_rec(), implementation< polynomial_gcd, X, polynomial_series< BV > >::inv_mod_polynomial_series_rep< C, U, V, W >::initialize(), join(), implementation< crt_project, V, crt_naive >::mod(), mul(), implementation< polynomial_evaluate, V, polynomial_naive >::multi_gcd(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::multi_gcd(), carry_mul_quorem_series_rep< C, V, X >::next(), implementation< series_multiply, U, series_carry_relaxed< W > >::mul_series_rep< M, V >::next(), implementation< series_multiply, U, series_carry_lift< W > >::truncate_mul_series_rep< M, V >::next(), implementation< series_multiply, U, series_carry_lift< W > >::mul_series_rep< M, V >::next(), implementation< series_multiply, U, series_carry_naive >::truncate_mul_series_rep< M, V >::next(), implementation< series_multiply, U, series_carry_naive >::mul_series_rep< M, V >::next(), implementation< series_multiply, U, series_carry_modular_int_naive< W > >::mul_series_rep< M, V >::next(), implementation< polynomial_vectorial, V, polynomial_naive >::rem_sc(), shift1(), shift2(), and square().

                                              {
  return binary_map_scalar<rrem_op> (m, c); }
series<C,V> mmx::rem ( const series< C, V > &  f,
const series< C, V > &  g 
) [inline]

Definition at line 1117 of file series.hpp.

References CF(), is_exact_zero(), quo(), and Series.

                                       {
  if (is_exact_zero (f)) return Series (CF(f));
  return f - g * quo (f, g);
}
polynomial<C,V> mmx::rem ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2,
polynomial< C, V > &  Q 
)

Returns the remainder and stores the quotient in Q.

Definition at line 681 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

                                                                {
  typedef implementation<polynomial_divide,V> Pol;
  nat n1= N(P1), n2= N(P2);
  if (n1 < n2 || n2 == 0) return Polynomial (CF(P1));
  nat lq= aligned_size<C,V> (n1-n2+1);
  nat lr= aligned_size<C,V> (n1);
  C* q= mmx_formatted_new<C> (lq, CF(P1));
  C* r= mmx_formatted_new<C> (lr, CF(P1));
  Pol::copy (r, seg (P1), n1);
  Pol::quo_rem (q, r, seg (P2), n1, n2);
  Q= Polynomial (q, n1-n2+1, lq, CF(P1));
  return Polynomial (r, n2 - 1, lr, CF(P1));
}
polynomial<C,V> mmx::rem ( const polynomial< C, V > &  P,
const C &  c 
)

Definition at line 618 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

                                      {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= N(P);
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::rem_sc (r, seg (P), c, n);
  return Polynomial (r, n, l, CF(P));
}
polynomial<C,V> mmx::rem ( const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Definition at line 660 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

                                                 {
  typedef implementation<polynomial_divide,V> Pol;
  nat n1= N(P1), n2= N(P2);
  if (n1 < n2 || n2 == 0) return P1;
  nat lq= aligned_size<C,V> (n1-n2+1);
  nat lr= aligned_size<C,V> (n1);
  C* q= mmx_formatted_new<C> (lq, CF(P1));
  C* r= mmx_formatted_new<C> (lr, CF(P1));
  Pol::copy (r, seg (P1), n1);
  Pol::quo_rem (q, r, seg (P2), n1, n2);
  mmx_delete<C> (q, lq);
  return Polynomial (r, n2 - 1, lr, CF(P1));
}
vector< polynomial<C,V> > mmx::rem ( const polynomial< C, V > &  p,
const vector< polynomial< C, V > > &  q 
) [inline]

Definition at line 1108 of file polynomial.hpp.

                                                       {
  typedef implementation<polynomial_evaluate,V> Pol;
  return Pol::multi_rem (p, q);
}
series<C,V> mmx::rem ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 1111 of file series.hpp.

                                  {
  typedef implementation<series_divide,V> Ser;
  return Ser::ser_rrem_sc (f, c);
}
class series_rep REP_STRUCT_1 ( )

Definition at line 46 of file matrix.hpp.

References C, cols(), Format, is_a_scalar(), is_non_scalar(), Matrix, rows(), and tab().

                                 {
  C*   a;
  nat  nr;
  nat  nc;
  bool scalar_flag;
public:
  inline matrix_rep (C* a2, nat nr2, nat nc2, bool flag, const Format& fm):
    Format (fm), a (a2), nr (nr2), nc (nc2), scalar_flag (flag) {}
  inline ~matrix_rep () { mmx_delete<C> (a, aligned_size<C,V> (nr * nc)); }
  friend class Matrix;
  friend nat cols LESSGTR (const Matrix& m);
  friend nat rows LESSGTR (const Matrix& m);
  friend C* tab LESSGTR (Matrix& m);
  friend const C* tab LESSGTR (const Matrix& m);
  friend bool is_a_scalar   LESSGTR (const Matrix& m);
  friend bool is_non_scalar LESSGTR (const Matrix& m);
};
class matrix_rep< C, matrix_fixed< V, RS, CS > > mmx::REP_STRUCT_1 ( )

Definition at line 279 of file matrix.hpp.

References C, cols(), FMatrix, Format, is_a_scalar(), is_non_scalar(), Matrix, rows(), tab(), and val().

                                  {
  C* a;
public:
  inline matrix_rep (C* a2, nat, nat, bool, const Format& fm):
    Format (fm), a (a2) {}
  inline virtual ~matrix_rep () { mmx_delete<C> (a, RS::val * CS::val); }
  friend class FMatrix;
  friend nat cols LESSGTR (const FMatrix& m);
  friend nat rows LESSGTR (const FMatrix& m);
  friend C*  tab  LESSGTR (const FMatrix& m);
  friend bool is_a_scalar   LESSGTR (const Matrix& m);
  friend bool is_non_scalar LESSGTR (const Matrix& m);
};
series<C,V> mmx::restrict ( const series< C, V > &  f,
nat  start,
nat  end 
) [inline]

Definition at line 850 of file series.hpp.

References CF(), is_exact_zero(), Series, and Series_rep.

                                               {
  if (is_exact_zero (f)) return Series (CF(f));
  return (Series_rep*) new restrict_series_rep<C,V> (f, start, end);
}
C mmx::resultant ( const polynomial< C, V > &  P,
const polynomial< C, V > &  Q 
) [inline]

Definition at line 978 of file polynomial.hpp.

References C, CF(), degree(), and Polynomial.

Referenced by discriminant(), GLUE_28(), GLUE_34(), GLUE_36(), and GLUE_87().

                                                     {
  typedef implementation<polynomial_subresultant,V> Pol;
  int n= degree (P), m= degree (Q);
  if (n < 0 || m < 0) return promote (0, CF(P));
  if (m == 0) return binpow (Q[0], n);
  if (n == 0) {
    C r= binpow (P[0], m); 
    return (n & 1) ? -r : r;
  }
  Polynomial d;
  C zero= promote (0, CF(P)), one= promote (1, CF(P));
  vector<Polynomial>
    res (Polynomial (one), 1),
    co_P (Polynomial (zero), 0),
    co_Q (Polynomial (zero), 0);
  Pol::subresultant_sequence (P, Q, res, co_P, co_Q,
                              d, d, d, d, d, d, 0);
  return res[0][0];
}
series<C,V> mmx::reverse ( const series< C, V > &  f) [inline]

Definition at line 1166 of file series.hpp.

                          {
  typedef implementation<series_compose,V> Ser;
  return Ser::ser_reverse (f);
}
polynomial<C,V> mmx::reverse ( const polynomial< C, V > &  P)

Definition at line 1250 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

Referenced by GLUE_135(), GLUE_26(), GLUE_29(), GLUE_38(), GLUE_8(), minimal_polynomial_bis(), polynomial_mul_helper< V, C, K >::op(), polynomial_reverse(), and implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::tinterpolate().

                              {
  typedef implementation<polynomial_linear,V> Pol;
  typedef implementation<vector_linear,V> Vec;
  nat n= N(P);
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Vec::vec_reverse (r, seg (P), n);
  return Polynomial (r, n, l, CF(P));
}
void mmx::reverse_cols ( matrix< C, V > &  m)

Definition at line 969 of file matrix.hpp.

References cols(), is_non_scalar(), rows(), and tab().

                         {
  typedef implementation<matrix_linear,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Mat::col_reverse (tab (m), rows (m), cols (m));
}
algebraic<C,Extension> mmx::root ( const algebraic< C, Extension > &  x,
const int &  p 
) [inline]

Definition at line 281 of file algebraic.hpp.

References Algebraic, CF(), field(), normalize(), Polynomial, and ramify().

Referenced by GLUE_23(), GLUE_52(), and sqrt().

                                        {
  if (p < 0) return 1 / root (x, -p);
  ASSERT (p != 0, "cannot take zero-th roots");
  Algebraic  y= normalize (x);
  Polynomial z (vec<C> (promote (0, CF(x)), promote (1, CF(x))));
  return Algebraic (ramify (field (y), p), z);
}
static series<M,V> mmx::root_series ( const generic &  f,
const generic &  x,
const M &  y0 
) [inline, static]

Definition at line 689 of file series_carry_naive.hpp.

References recursive(), Series, and Series_rep.

                                                              {
  return recursive(Series ((Series_rep*) new root_series_rep<M,V> (f, x, y0)));
}
vector<C> mmx::row ( const matrix< C, V > &  m,
nat  i 
)

Definition at line 913 of file matrix.hpp.

References CF(), and cols().

Referenced by annihilator(), GLUE_12(), GLUE_14(), GLUE_15(), GLUE_29(), implementation< matrix_vectorial, V, matrix_naive >::index(), and row_vectors().

                             {
  nat n= cols (m);
  nat l= default_aligned_size<C> (n);
  C*  a= mmx_formatted_new<C> (l, CF(m));
  for (nat j=0; j<n; j++) a[j]= m(i,j);
  return vector<C> (a, n, l, CF(m));
}
void mmx::row_div ( matrix< C, V > &  m,
c,
nat  i 
)
matrix<C,V> mmx::row_echelon ( const matrix< C, V > &  m,
bool  reduced = false 
) [inline]
Examples:
matrix_test.cpp, and pivot_test.cpp.

Definition at line 1099 of file matrix.hpp.

References column_echelon(), and transpose().

Referenced by annihilator(), GLUE_102(), GLUE_32(), GLUE_57(), and row_reduced_echelon().

                                                   {
  return transpose (column_echelon (transpose (m), reduced));
}
matrix<C,V> mmx::row_echelon ( const matrix< C, V > &  m,
matrix< C, V > &  k,
bool  reduced = false 
) [inline]

Definition at line 1109 of file matrix.hpp.

References column_echelon(), Matrix, and transpose().

                                                              {
  Matrix c= column_echelon (transpose (m), k, reduced);
  k= transpose (k);
  return transpose (c);
}
matrix<C> mmx::row_matrix ( const vector< vector< C > > &  v)

Definition at line 939 of file matrix.hpp.

References CF(), and N().

                                         {
  if (N(v) == 0) return matrix<C> (0);
  matrix<C> r (promote (0, get_format1 (CF(v))), N(v), N(v[0]));
  for (nat i=0; N(v)>i; i++) {
    ASSERT (N(v[i]) == N(v[0]), "unequal row lengths");
    for (nat j=0; j<N(v[0]); j++)
      r (i, j)= v[i][j];
  }
  return r;
}
void mmx::row_mul ( matrix< C, V > &  m,
c,
nat  i 
)

Definition at line 991 of file matrix.hpp.

{
matrix<C,V> mmx::row_orthogonalization ( const matrix< C, V > &  m,
matrix< C, V > &  l 
) [inline]

Definition at line 1234 of file matrix.hpp.

References CF(), cols(), copy(), is_non_scalar(), Matrix, rows(), seg(), and tab().

                                                   {
  typedef implementation<matrix_orthogonalization,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c= copy (m);
  vector<C> n (promote (0, CF(m)), rows(m));
  l= Matrix (promote (0, CF(m)), rows(m), rows(m));
  Mat::row_orthogonalize (tab(c), rows(m), cols(m), tab(l), seg(n));
  return c;
}  
matrix<C,V> mmx::row_orthogonalization ( const matrix< C, V > &  m) [inline]

Definition at line 1214 of file matrix.hpp.

References CF(), cols(), copy(), is_non_scalar(), Matrix, rows(), seg(), and tab().

                                        {
  typedef implementation<matrix_orthogonalization,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c= copy (m);
  vector<C> n (promote (0, CF(m)), rows(m));
  Mat::row_orthogonalize (tab(c), rows(m), cols(m), seg(n));
  return c;
}  
matrix<C,V> mmx::row_orthonormalization ( const matrix< C, V > &  m,
matrix< C, V > &  l 
) [inline]

Definition at line 1274 of file matrix.hpp.

References CF(), cols(), copy(), is_non_scalar(), Matrix, rows(), and tab().

                                                    {
  typedef implementation<matrix_orthogonalization,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c= copy (m);
  l= Matrix (promote (0, CF(m)), rows(m), rows(m));
  Mat::row_orthonormalize (tab(c), rows(m), cols(m), tab(l));
  return c;
}  
matrix<C,V> mmx::row_orthonormalization ( const matrix< C, V > &  m) [inline]

Definition at line 1256 of file matrix.hpp.

References cols(), copy(), is_non_scalar(), Matrix, rows(), and tab().

                                         {
  typedef implementation<matrix_orthogonalization,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  Matrix c= copy (m);
  Mat::row_orthonormalize (tab(c), rows(m), cols(m));
  return c;
}  
matrix<C,V> mmx::row_reduced_echelon ( const matrix< C, V > &  m,
matrix< C, V > &  k 
)

Definition at line 1116 of file matrix.hpp.

References row_echelon().

                                                 {
  return row_echelon (m, k, true);
}
matrix<C,V> mmx::row_reduced_echelon ( const matrix< C, V > &  m)

Definition at line 1104 of file matrix.hpp.

References row_echelon().

Referenced by GLUE_104(), GLUE_34(), GLUE_59(), and wrap_row_reduced_echelon_with_transform().

                                      {
  return row_echelon (m, true);
}
vector<vector<C> > mmx::row_vectors ( const matrix< C > &  m)

Definition at line 931 of file matrix.hpp.

References row(), and rows().

                                 {
  vector<vector<C> > v=  fill<vector<C> > (rows (m));
  for (nat i=0; i<rows(m); i++)
    v[i]= row (m, i);
  return v;
}
nat rows ( const matrix< C, V > &  m) [inline]

Definition at line 178 of file matrix.hpp.

Referenced by as_matrix(), binary_map(), binary_map_scalar(), binary_test(), cofactor(), column(), column_echelon(), column_orthogonalization(), column_orthonormalization(), column_reduced_echelon(), as_helper< matrix< T, TV >, matrix< F, FV > >::cv(), fast_helper< matrix< C, V > >::dd(), delete_col(), delete_row(), det(), binary_helper< matrix< C, V > >::disassemble(), extend(), first_minor(), flatten(), get_matrix_format(), GLUE_10(), GLUE_24(), GLUE_6(), GLUE_7(), GLUE_9(), horizontal_join(), image(), ldiv_mat_mat_series_rep< C, V, U >::Increase_order(), ldiv_sc_mat_mat_series_rep< C, V, U, UU >::Increase_order(), matrix_series_rep< C, V, U >::Increase_order(), invert(), matrix_iterator_rep< C, V >::is_busy(), is_square_matrix(), kernel(), krylov(), map(), matrix< series< C, V >, U >::matrix(), matrix_mul_quo(), matrix_new(), N(), nbrow(), matrix_series_rep< C, V, U >::next(), nullary_set(), operator!=(), matrix< series< C, V >, U >::operator()(), operator*(), operator<=(), operator==(), operator>=(), permute_columns(), permute_rows(), implementation< matrix_vectorial, V, matrix_naive >::print(), range(), rank(), REP_STRUCT_1(), reverse_cols(), row_orthogonalization(), row_orthonormalization(), row_vectors(), implementation< matrix_vectorial, V, matrix_naive >::set(), solve_lde(), solve_lde_init(), swap_col(), swap_row(), implementation< matrix_vectorial, V, matrix_naive >::transpose(), transpose(), unary_hash(), unary_map(), unary_set(), unary_set_scalar(), fast_helper< matrix< C, V > >::uu(), vertical_join(), and binary_helper< matrix< C, V > >::write().

{ return m->nr; }
nat mmx::rows ( const matrix< C, matrix_fixed< V, RS, CS > > &  m) [inline]

Definition at line 296 of file matrix.hpp.

References val().

{ return RS::val; }
void mmx::rows_linsub ( matrix< C, V > &  m,
nat  i,
ci,
nat  j,
cj 
)

Definition at line 995 of file matrix.hpp.

Referenced by bareiss_extended_pivoting(), and bareiss_pivoting().

{
const C * seg ( const polynomial< C, V > &  P) [inline]

Definition at line 190 of file polynomial.hpp.

{ return P->a; }
C * seg ( polynomial< C, V > &  P) [inline]
Examples:
crt_test.cpp.

Definition at line 189 of file polynomial.hpp.

Referenced by implementation< polynomial_evaluate, V, polynomial_naive >::annulator(), big_add(), big_mul(), binary_map_scalar(), column_orthogonalization(), combine_crt(), compose(), contents(), crt_dicho_transformer< C, S, V >::crt_dicho_transformer(), decode_kronecker(), derive(), dilate(), implementation< series_multiply, U, series_fast >::nrelax_mul_series_rep< C, V >::direct_transform(), base_dicho_transformer< C, S, V >::direct_transform(), implementation< polynomial_evaluate, V, polynomial_naive >::evaluate(), evaluate(), expand(), implementation< polynomial_gcd, V, polynomial_naive >::gcd(), graeffe(), integrate(), implementation< polynomial_evaluate, V, polynomial_naive >::interpolate(), inverse_base(), inverse_crt(), base_dicho_transformer< C, S, V >::inverse_transform(), invert_hi(), invert_lo(), lshiftz(), implementation< polynomial_evaluate, V, polynomial_naive >::multi_rem(), operator*(), operator+(), polynomial< C, V >::operator+=(), operator-(), polynomial< C, V >::operator-=(), operator/(), implementation< polynomial_gcd, V, polynomial_naive >::pade(), permute_columns(), permute_rows(), polynomial< series< C, V >, U >::polynomial(), pquo(), prem(), primitive_part(), q_difference(), quo(), rem(), reverse(), row_orthogonalization(), set_as(), shift(), skew_div(), square(), implementation< polynomial_subresultant_base, V, polynomial_naive >::subresultant_sequence(), implementation< polynomial_evaluate, V, polynomial_naive >::tevaluate(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::tevaluate(), implementation< polynomial_evaluate, V, polynomial_naive >::tinterpolate(), tmul(), tquo(), trem(), unary_map(), and xderive().

{ return P->a; }
series<C,V> mmx::separable_root ( const series< C, V > &  f,
nat  n 
) [inline]

Definition at line 1134 of file series.hpp.

                                        {
  typedef implementation<series_separable_root,V> Ser;
  return Ser::sep_root (f, n);
}
modular< modulus<C,V> ,W> mmx::separable_root ( const modular< modulus< C, V >, W > &  a,
nat  r 
)
Examples:
p_adic_test.cpp.

Definition at line 118 of file root_modular.hpp.

References N(), and separable_roots().

Referenced by GLUE_27(), ser_separable_root_op::op(), ser_carry_separable_root_op::op(), ser_separable_root_op::set_op(), and ser_carry_separable_root_op::set_op().

                                         {
  // return one r th roots of a
  // FIXME << to optimize
  if (a == 1) return a;
  vector<Modular> ans= separable_roots (a, r); 
  ASSERT (N (ans) != 0, "no root");
  return ans [0];
}
series<C,V> mmx::separable_root_init ( const series< C, V > &  f,
nat  n,
const C &  init 
) [inline]

Definition at line 1140 of file series.hpp.

Referenced by ser_separable_root_op::op_init(), and ser_carry_separable_root_op::op_init().

                                                            {
  typedef implementation<series_separable_root,V> Ser;
  return Ser::sep_root (f, n, init);
}
vector< modular< modulus<C,V> ,W> > mmx::separable_roots ( const modular< modulus< C, V >, W > &  a,
nat  r 
)

Definition at line 109 of file root_modular.hpp.

References C, Modular, and root_modular_naive::roots().

Referenced by nth_roots(), and separable_root().

                                          {
  // return all the r th roots of a
  C p= * get_modulus (a);
  ASSERT (Modular (r) != 0, "wrong argument");
  polynomial<Modular> x_r (C(1),r);
  return root_modular_naive::roots (x_r - a, p);
}
static vector< series<C,V> ,W> mmx::ser_ldiv_mat ( const matrix< series< C, V >, U > &  mat,
const vector< series< C, V >, W > &  f 
) [inline, static]

Definition at line 400 of file series_vector.hpp.

References as_series(), as_vector(), CF(), cols(), is_exact_zero(), recursive(), Series, Series_vector, and Vector_series.

Referenced by system_root_series_rep< M, V, W >::initialize().

                                                                {
  typedef ldiv_mat_series_rep<C,V,W,U> Div_mat_rep;
  if (is_exact_zero (as_series (f))) {
    Series zero (get_format1 (CF(mat)));
    return Vector_series (zero, cols(mat));
  }
  Series_vector s = (series_rep<Vector,V>*) new Div_mat_rep (mat,f);
  return as_vector (recursive (s)); 
}
static matrix< series<C,V> ,U> mmx::ser_ldiv_mat_mat ( const matrix< series< C, V >, U > &  mat,
const matrix< series< C, V >, U > &  f 
) [inline, static]

Definition at line 301 of file series_matrix.hpp.

References as_matrix(), as_series(), CF(), cols(), is_exact_zero(), Matrix_series, recursive(), Series, and Series_matrix.

                                                                    {
  typedef ldiv_mat_mat_series_rep<C,V,U> Div_mat_rep;
  if (is_exact_zero (as_series (f))) {
    Series zero (get_format1 (CF(f)));
    return Matrix_series (zero, cols(mat), cols(f));
  }
  Series_matrix s = (series_rep<Matrix,V>*) new Div_mat_rep (mat,f);
  return as_matrix (recursive (s)); 
}
static vector< series<C,V> ,W> mmx::ser_ldiv_sc_mat ( const matrix< C, U > &  c,
const vector< series< C, V >, W > &  f 
) [inline, static]

Definition at line 348 of file series_vector.hpp.

References as_series(), as_vector(), CF(), cols(), is_exact_zero(), recursive(), Series, Series_vector, and Vector_series.

Referenced by ldiv_mat_series_rep< C, V, W, U >::initialize().

                                                          {
  typedef ldiv_sc_mat_series_rep<C,V,W,U> Div_sc_mat_rep;
  if (is_exact_zero (as_series (f)))
    return Vector_series (Series (CF(c)), cols(c));
  Series_vector s = (series_rep<Vector,V>*) new Div_sc_mat_rep (c,f);
  return as_vector (recursive (s)); 
}
static matrix< series<C,V> ,U> mmx::ser_ldiv_sc_mat_mat ( const matrix< C, UU > &  c,
const matrix< series< C, V >, U > &  f 
) [inline, static]

Definition at line 257 of file series_matrix.hpp.

References as_matrix(), as_series(), CF(), cols(), is_exact_zero(), Matrix_series, recursive(), Series, and Series_matrix.

Referenced by ldiv_mat_mat_series_rep< C, V, U >::initialize().

                                                                    {
  typedef ldiv_sc_mat_mat_series_rep<C,V,U,UU> Div_sc_mat_mat_rep;
  if (is_exact_zero (as_series (f))) {
    Series zero (get_format1 (CF(f)));
    return Matrix_series (zero, cols(c), cols(f));
  }
  Series_matrix s = (series_rep<Matrix,V>*) new Div_sc_mat_mat_rep (c,f);
  return as_matrix (recursive (s));
}
void mmx::set_accuracy ( matrix< C, V > &  m)

Definition at line 558 of file matrix.hpp.

{ nullary_set<accuracy_as_op> (m); }
void mmx::set_as ( polynomial< T, TV > &  r,
const polynomial< F, FV > &  p 
) [inline]

Definition at line 250 of file polynomial.hpp.

References N(), normalize(), seg(), and set_as().

                                                        {
  r.secure ();
  inside (r) -> resize (N(p));
  T* c= seg (r);
  for (nat i=0; i<N(p); i++) set_as (c[i], p[i]);
  inside (r) -> normalize ();
}
void mmx::set_as ( matrix< C, V > &  r,
const T &  x 
) [inline]

Definition at line 245 of file matrix.hpp.

References CF(), and Matrix.

                               {
  r= Matrix (x, CF(r));
}
void mmx::set_as ( series< C, V > &  r,
const T &  x 
) [inline]

Definition at line 527 of file series.hpp.

References CF(), and Series.

                               {
  r= Series (x, CF(r));
}
void mmx::set_as ( polynomial< C, V > &  r,
const T &  x 
) [inline]

Definition at line 259 of file polynomial.hpp.

References normalize(), seg(), and set_as().

                                   {
  r.secure ();
  inside (r) -> resize (1);
  set_as (seg(r)[0], x);
  inside (r) -> normalize ();
}
void mmx::set_as ( series< T, TV > &  r,
const series< F, FV > &  f 
) [inline]

Definition at line 522 of file series.hpp.

References CF().

                                                {
  r= series<T,TV> (f, CF(r));
}
void mmx::set_as ( matrix< T, TV > &  r,
const matrix< F, FV > &  m 
) [inline]
void mmx::set_cancel_order ( const series< C, V > &  ,
const nat &  n 
) [inline]
Examples:
p_adic_test.cpp.

Definition at line 114 of file series.hpp.

Referenced by GLUE_102(), GLUE_3(), GLUE_4(), GLUE_5(), and GLUE_74().

                                                                {
  return Series::set_cancel_order (n); }
void mmx::set_catalan ( matrix< C, V > &  m)

Definition at line 552 of file matrix.hpp.

{ nullary_set<catalan_as_op> (m); }
void mmx::set_euler ( matrix< C, V > &  m)

Definition at line 551 of file matrix.hpp.

{ nullary_set<euler_as_op> (m); }
void mmx::set_formula_output ( const series< C, V > &  ,
const bool &  b 
) [inline]

Definition at line 116 of file series.hpp.

Referenced by GLUE_103(), GLUE_4(), GLUE_5(), GLUE_6(), and GLUE_75().

                                                                   {
  return Series::set_formula_output (b); }
void mmx::set_fuzz ( matrix< C, V > &  m)

Definition at line 555 of file matrix.hpp.

{ nullary_set<fuzz_as_op> (m); }
void mmx::set_imaginary ( algebraic_number &  z) [inline]

Definition at line 388 of file algebraic_number.hpp.

                                    {
  typedef ball<complex<floating<> > > B;
  polynomial<rational> mp (vec<rational> (1, 0, 1));
  polynomial<rational> i (vec<rational> (0, 1));
  algebraic_complex_extension ext (mp, imaginary_cst<B> ());
  z= algebraic_number (ext, i);
}
void mmx::set_imaginary ( matrix< C, V > &  m)

Definition at line 553 of file matrix.hpp.

{ nullary_set<imaginary_as_op> (m); }
void mmx::set_infinity ( matrix< C, V > &  m)

Definition at line 559 of file matrix.hpp.

{ nullary_set<infinity_as_op> (m); }
void mmx::set_largest ( matrix< C, V > &  m)

Definition at line 557 of file matrix.hpp.

{ nullary_set<largest_as_op> (m); }
void mmx::set_log2 ( matrix< C, V > &  m)

Definition at line 550 of file matrix.hpp.

{ nullary_set<log2_as_op> (m); }
void mmx::set_maximal ( matrix< C, V > &  m)

Definition at line 560 of file matrix.hpp.

{ nullary_set<maximal_as_op> (m); }
void mmx::set_minimal ( matrix< C, V > &  m)

Definition at line 561 of file matrix.hpp.

{ nullary_set<minimal_as_op> (m); }
void mmx::set_nan ( matrix< C, V > &  m)

Definition at line 554 of file matrix.hpp.

{ nullary_set<nan_as_op> (m); }
void mmx::set_output_order ( const series< C, V > &  ,
const nat &  n 
) [inline]
Examples:
fast_series_test.cpp, p_adic_test.cpp, and series_test.cpp.

Definition at line 112 of file series.hpp.

Referenced by GLUE_101(), GLUE_2(), GLUE_3(), GLUE_4(), and GLUE_73().

                                                                {
  return Series::set_output_order (n); }
void mmx::set_pi ( matrix< C, V > &  m)

Definition at line 549 of file matrix.hpp.

{ nullary_set<pi_as_op> (m); }
void mmx::set_smallest ( matrix< C, V > &  m)

Definition at line 556 of file matrix.hpp.

{ nullary_set<smallest_as_op> (m); }
void mmx::set_variable_name ( const polynomial< C, V > &  P,
const generic &  x 
) [inline]

Definition at line 303 of file polynomial.hpp.

Referenced by GLUE_1(), GLUE_100(), GLUE_2(), GLUE_3(), GLUE_54(), GLUE_72(), and set_variable_name().

                                                                           {
  (void) P; return Polynomial::set_variable_name (x); }
void mmx::set_variable_name ( const series< C, V > &  ,
const generic &  x 
) [inline]

Definition at line 110 of file series.hpp.

References set_variable_name().

                                                                     {
  return Series::set_variable_name (x); }
matrix<C,V> mmx::sharpen ( const matrix< C, V > &  m) [inline]

Definition at line 682 of file matrix.hpp.

Referenced by improve_zero().

                                             {
  return unary_map<sharpen_op> (m); }
polynomial<C,V> mmx::sharpen ( const polynomial< C, V > &  p) [inline]

Definition at line 1406 of file polynomial.hpp.

                                                     {
  return unary_map<sharpen_op> (p); }
series<C,V> mmx::sharpen ( const series< C, V > &  f) [inline]

Definition at line 1201 of file series.hpp.

                                             {
  return unary_map<sharpen_op> (f); }
polynomial<C,V> mmx::shift ( const polynomial< C, V > &  P,
int  i 
)

Definition at line 1075 of file polynomial.hpp.

References CF(), and shift().

                                   {
  return shift (P, promote (i, CF(P)));
}
series<C,V> mmx::shift ( const series< C, V > &  f,
const C &  q,
nat  order 
) [inline]

Definition at line 984 of file series.hpp.

References CF(), is_exact_zero(), Series, and Series_rep.

                                               {
  if (is_exact_zero (f)) return Series (CF(f));
  return (Series_rep*) new shift_series_rep<C,V> (f, q, order);
}
polynomial<C,V> mmx::shift ( const polynomial< C, V > &  P,
const C &  sh 
)
vector<C> mmx::shift1 ( const algebraic_extension< C > &  ext1,
const algebraic_extension< C > &  ext2,
const vector< C > &  v 
)

Definition at line 140 of file algebraic_extension.hpp.

References CF(), deg(), Element, lshiftz(), and rem().

Referenced by mul_matrix().

                                                                          {
  // multiply the bivariate polynomial represented by v with x1
  nat d1= deg (ext1.mp), d2= deg (ext2.mp);
  vector<C> r= fill<C> (promote (0, CF(ext1)), d1*d2);
  for (nat i2=0; i2<d2; i2++) {
    vector<C> c= fill<C> (promote (0, CF(ext1)), d1);
    for (nat i1=0; i1<d1; i1++)
      c[i1]= v[i1*d2 + i2];
    Element p= rem (lshiftz (Element (c), 1), ext1.mp);
    for (nat i1=0; i1<d1; i1++)
      r[i1*d2 + i2]= p[i1];
  }
  return r;
}
vector<C> mmx::shift2 ( const algebraic_extension< C > &  ext1,
const algebraic_extension< C > &  ext2,
const vector< C > &  v 
)

Definition at line 156 of file algebraic_extension.hpp.

References CF(), deg(), Element, lshiftz(), and rem().

Referenced by mul_matrix().

                                                                          {
  // multiply the bivariate polynomial represented by v with x2
  nat d1= deg (ext1.mp), d2= deg (ext2.mp);
  vector<C> r= fill<C> (promote (0, CF(ext1)), d1*d2);
  for (nat i1=0; i1<d1; i1++) {
    vector<C> c= fill<C> (promote (0, CF(ext1)), d2);
    for (nat i2=0; i2<d2; i2++)
      c[i2]= v[i1*d2 + i2];
    Element p= rem (lshiftz (Element (c), 1), ext2.mp);
    for (nat i2=0; i2<d2; i2++)
      r[i1*d2 + i2]= p[i2];
  }
  return r;
}
bool shrink ( const polynomial< C > &  p,
Ball &  x 
)

Definition at line 155 of file algebraic_number.hpp.

References copy(), and improve_zero().

Referenced by join(), normalize(), and shrink_check().

                                      {
  nat old_precision= mmx_bit_precision;
  mmx_bit_precision *= 2;
  Ball x2= copy (x);
  bool r= improve_zero (p, x2);
  mmx_bit_precision= old_precision;
  x= copy (x2);
  add_additive_error (x);
  return r;
}
void mmx::shrink_check ( const polynomial< C > &  p,
Ball &  x 
)

Definition at line 167 of file algebraic_number.hpp.

References shrink().

Referenced by algebraic_number_extension< C, Ball >::algebraic_number_extension().

                                            {
  if (!shrink (p, x)) {
    mmerr << "mp= " << p << "\n";
    mmerr << "x = " << x << "\n";
    ERROR ("root not uniquely specified");
  }
}
int mmx::sign ( const algebraic< C, Extension > &  x) [inline]

Definition at line 124 of file algebraic.hpp.

References field(), and value().

Referenced by compare(), GLUE_24(), implementation< polynomial_linear, V, polynomial_naive >::sign(), and sign().

                                          {
  return sign (field (x), value (x)); }
int mmx::sign ( const algebraic_extension< C > &  ext,
const typename algebraic_extension< C >::El &  p1 
) [inline]

Definition at line 130 of file algebraic_extension.hpp.

References deg(), and sign().

                                               {
  if (deg (p1) <= 0) return sign (p1[0]);
  ERROR ("cannot compute sign");
}
int mmx::sign ( const quotient< NT, DT > &  x) [inline]

Definition at line 293 of file quotient.hpp.

References denominator(), numerator(), and sign().

                         {
  return sign (numerator (x)) * sign (denominator (x));
}
int mmx::sign ( const series< C, V > &  f)

Definition at line 337 of file series.hpp.

References sign().

                       {
  for (nat n=0; n< Series::get_cancel_order (); n++) {
    int sgn= sign (f[n]);
    if (sgn != 0) return sgn;
  }
  return 0;
}
int mmx::sign ( const algebraic_number_extension< C, Ball > &  ext,
const typename algebraic_number_extension< C, Ball >::El &  p1 
) [inline]

Definition at line 271 of file algebraic_number.hpp.

References annihilator(), deg(), derive(), eval(), Polynomial, and sign().

                                           {
  if (deg (p1) <= 0) return sign (ext.ext, p1);
  Ball y= eval (ext, p1);
  if (is_non_zero (y)) return sign (y);
  Polynomial ann= annihilator (ext, p1);
  if (ann[0] == 0 && is_non_zero (eval (derive (ann), y))) return 0;
  nat old_precision= mmx_bit_precision;
  mmx_bit_precision *= 2;
  int r= sign (ext, p1);
  mmx_bit_precision= old_precision;
  return r;
}
int mmx::sign ( const polynomial< C, V > &  P)

Definition at line 361 of file polynomial.hpp.

References N(), and sign().

                           {
  for (nat i=0; i<N(P); i++) {
    int s= sign (P[i]);
    if (s != 0) return s;
  }
  return 0;
}
series<C,V> mmx::sin ( const series< C, V > &  f) [inline]
Examples:
series_test.cpp.

Definition at line 119 of file series_elementary.hpp.

Referenced by GLUE_38(), GLUE_53(), and primitive_root_helper< C >::op().

                      {
  return unary_recursive_series<sin_op> (f);
}
vector<vector<C> > mmx::singleton_vector ( const vector< C > &  v)

Definition at line 122 of file series_sugar.hpp.

References N().

                                      {
  nat n= N(v);
  vector<vector<C> > r= fill<vector<C> > (n);
  for (nat i=0; i<n; i++) r[i]= vec<C> (v[i]);
  return r;
}
nat mmx::size_bound ( const typename Baser::base &  a,
Baser &  baser 
) [inline]

Definition at line 154 of file base_naive.hpp.

Referenced by direct_base().

                                      {
  // return a bound size for the expansion of a
  return size_bound_in_base_helper<C,I>::size (a, * baser.p);
}
polynomial<C,V> mmx::skew_div ( const polynomial< C, V > &  P,
const C &  c,
bool  left 
)

Definition at line 595 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

                                                      {
  typedef implementation<polynomial_linear,V> Pol;
  if (left) {
    nat n= N(P);
    nat l= aligned_size<C,V> (n);
    C* r= mmx_formatted_new<C> (n, CF(P));
    Pol::div_sc (r, seg (P), c, n);
    return Polynomial (r, n, l, CF(P));
  }
  else return P / c;
}
matrix< series<C,V> ,U> mmx::solve_lde ( const matrix< series< C, V >, U > &  f)
Examples:
series_test.cpp.

Definition at line 166 of file series_matrix.hpp.

References as_matrix(), as_series(), C, cols(), is_square_matrix(), Matrix, rows(), and solve_matrix_lde_init().

                                   {
  ASSERT (is_square_matrix (f), "square matrix expected");
  Matrix c (C(1), rows (f), cols (f));
  return as_matrix (solve_matrix_lde_init (as_series (f), c));
}
series<C,V> mmx::solve_lde ( const vector< series< C, V >, W > &  f,
const vector< C, W > &  c 
)

Definition at line 177 of file series_vector.hpp.

References read(), and solve_lde_init().

                                                    {
  return read (solve_lde_init (f, c), 0);
}
vector< series<C,V> ,W> mmx::solve_lde_init ( const vector< series< C, V >, W > &  f,
const vector< C, W > &  c 
)

Definition at line 172 of file series_vector.hpp.

References as_series(), as_vector(), and solve_vector_lde_init().

                                                         {
  return as_vector (solve_vector_lde_init (as_series (f), c));
}
matrix< series<C,V> ,U> mmx::solve_lde_init ( const matrix< series< C, V >, U > &  f,
const matrix< C, U > &  c 
)
Examples:
series_test.cpp.

Definition at line 173 of file series_matrix.hpp.

References as_matrix(), as_series(), is_square_matrix(), rows(), and solve_matrix_lde_init().

Referenced by solve_lde().

                                                         {
  ASSERT (is_square_matrix (f), "square matrix expected");
  ASSERT (rows (f) == rows (c), "unequal matrix dimensions");
  return as_matrix (solve_matrix_lde_init (as_series (f), c));
}
series< matrix<C,U> ,V> mmx::solve_matrix_lde_init ( const series< matrix< C, U >, V > &  f,
const matrix< C, U > &  c 
)

Definition at line 161 of file series_matrix.hpp.

Referenced by solve_lde(), and solve_lde_init().

                                                                {
  return unary_recursive_series<solve_matrix_lde_op> (f, c);
}
series< vector<C,W> ,V> mmx::solve_vector_lde_init ( const series< vector< C, W >, V > &  f,
const vector< C, W > &  c 
)

Definition at line 167 of file series_vector.hpp.

Referenced by solve_lde_init().

                                                                {
  return unary_recursive_series<solve_vector_lde_op> (f, c);
}
series<vector<C>,V> mmx::solver ( const series< vector< C >, V > &  f)

Definition at line 520 of file series_implicit.hpp.

References VSeries_rep.

Referenced by implicit_series(), and implicit_vector_series().

                          {
  return (VSeries_rep*) new solver_container_series_rep<C,V> (f);
}
series<C,V> mmx::sqrt ( const series< C, V > &  f) [inline]

Definition at line 29 of file series_elementary.hpp.

References CF(), is_exact_zero(), and Series.

                       {
  if (is_exact_zero (f)) return Series (CF(f));
  return unary_recursive_series<sqrt_op> (f);
}
algebraic<C,Extension> mmx::sqrt ( const algebraic< C, Extension > &  x) [inline]
series<C,V> mmx::sqrt_init ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 35 of file series_elementary.hpp.

                                        {
  return unary_recursive_series<sqrt_op> (f, c);
}
Ball algebraic_number_extension<C,Ball>::El mmx::square ( const algebraic_number_extension< C, Ball > &  ext,
const typename algebraic_number_extension< C, Ball >::El &  p1 
) [inline]

Definition at line 232 of file algebraic_number.hpp.

References square().

                                             {
  return square (ext.ext, p1);
}
algebraic<C,Extension> mmx::square ( const algebraic< C, Extension > &  x1) [inline]

Definition at line 231 of file algebraic.hpp.

References Algebraic, field(), and value().

Referenced by system_root_series_rep< M, V, W >::_ev_der(), root_series_rep< M, V >::_eval(), ser_carry_separable_root_op::binpow_no_tangent(), ser_carry_pth_root_reg_op::binpow_no_tangent_normalized(), ser_carry_pth_root_reg_op::def(), derive(), implementation< series_multiply, U, series_carry_relaxed< W > >::mul_series_rep< M, V >::get_power_of_p(), GLUE_10(), GLUE_109(), GLUE_11(), GLUE_12(), GLUE_13(), GLUE_20(), GLUE_24(), GLUE_27(), GLUE_38(), GLUE_41(), GLUE_6(), GLUE_60(), GLUE_61(), GLUE_65(), GLUE_8(), GLUE_83(), GLUE_86(), GLUE_9(), implementation< polynomial_graeffe, V, polynomial_unrolled< W, m > >::graeffe(), implementation< polynomial_graeffe, V, polynomial_naive >::graeffe(), implementation< series_compose, U, series_naive >::reverse_series_rep< C, V >::initialize(), rec_prod(), rec_square(), implementation< polynomial_multiply, V, polynomial_balanced_tft< W > >::square(), implementation< polynomial_multiply, V, polynomial_tft_inc< W, Th > >::square(), implementation< polynomial_multiply, V, polynomial_tangent< CV > >::square(), implementation< polynomial_multiply, V, polynomial_quotient< W > >::square(), implementation< polynomial_multiply, V, polynomial_modular< W > >::square(), implementation< polynomial_multiply, V, polynomial_kronecker< W > >::square(), implementation< polynomial_multiply, V, polynomial_karatsuba< W > >::square(), implementation< polynomial_multiply, V, polynomial_complex< CV > >::square(), implementation< polynomial_multiply, V, polynomial_balanced< W > >::square(), square(), square_kronecker(), square_kronecker_int(), square_kronecker_mod_int(), and xderive().

                             {
  return Algebraic (field (x1), square (field (x1), value (x1)));
}
algebraic_extension<C>::El mmx::square ( const algebraic_extension< C > &  ext,
const typename algebraic_extension< C >::El &  p1 
) [inline]

Definition at line 97 of file algebraic_extension.hpp.

References rem(), and square().

                                                 {
  return rem (square (p1), ext.mp);
}
polynomial<C,V> mmx::square ( const polynomial< C, V > &  P)

Definition at line 536 of file polynomial.hpp.

References C, CF(), N(), Polynomial, seg(), and square().

                             {
  typedef implementation<polynomial_multiply,V> Pol;
  nat n= N(P);
  if (n == 0) return P;
  nat l= aligned_size<C,V> (2*n-1);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::square (r, seg (P), n);
  return Polynomial (r, 2*n-1, l, CF(P));
}
polynomial<C> mmx::square_free ( const polynomial< C > &  p)

Definition at line 231 of file algebraic_extension.hpp.

References deg(), derive(), gcd(), and quo().

Referenced by annihilator(), and join().

                                     {
  polynomial<C> g= gcd (p, derive (p));
  if (deg (g) == 1) return p;
  else return quo (p, g);
}
void square_kronecker ( int *  dest,
const int *  src1,
nat  n1 
)

Definition at line 216 of file kronecker_int.cpp.

void mmx::square_kronecker ( signed short int *  dest,
const signed short int *  src,
nat  n 
)

Definition at line 214 of file kronecker_int.cpp.

void mmx::square_kronecker ( modular< modulus< I, MoV >, MaV > *  dest,
const modular< modulus< I, MoV >, MaV > *  s,
nat  n 
) [inline]

Definition at line 59 of file kronecker_modular_int.hpp.

References I, and square_kronecker_mod().

                                              {
  square_kronecker_mod ((I*) (void*) dest,
                        (const I*) (const void*) s, n, 
                        * C::get_modulus()); 
}
void mmx::square_kronecker ( short int *  dest,
const short int *  src1,
nat  n1 
)
void square_kronecker ( integer *  dest,
const integer *  src1,
nat  n1 
)

Definition at line 169 of file kronecker_integer.cpp.

References decode_kronecker(), encode_kronecker(), max_bit_size(), and square().

                                                            {
  if (n == 0) return;
  for (nat i= 0; i < 2 * n - 1; i++) dest[i]= 0;
  while (n > 0 && src[n-1] == 0) n--;
  if (n == 0) return;
  if (n == 1) { dest[0]= square (src[0]); return; }

  xnat bits1= max_bit_size (src, n);
  xnat bits = (bits1 << 1) + bit_size (integer (n)) + 1;

  integer aux1;
  encode_kronecker (aux1, src, n, bits);
  integer aux= square (aux1);
  decode_kronecker (dest, n+n-1, bits, aux);
}
void square_kronecker ( long long int *  dest,
const long long int *  src1,
nat  n1 
)

Definition at line 220 of file kronecker_int.cpp.

void square_kronecker ( unsigned int *  dest,
const unsigned int *  src1,
nat  n1 
)

Definition at line 217 of file kronecker_int.cpp.

void mmx::square_kronecker ( modular< modulus< I, MoV >, modular_local > *  dest,
const modular< modulus< I, MoV >, modular_local > *  s,
nat  n 
) [inline]

Definition at line 85 of file kronecker_modular_int.hpp.

References C, I, and square_kronecker_mod().

                                              {
  nat ls= default_aligned_size<I> (n);
  nat spc= ls + default_aligned_size<I> (2 * n - 1);
  I* t= mmx_new<I> (spc), * r= t + ls;
  for (nat i= 0; i < n; i++) t[i]= * s[i];
  I p= * get_modulus (s[0]);
  square_kronecker_mod (r, t, n, p);
  for (nat i= 0; i < 2 * n - 1; i++) dest[i]= C (* r[i], p, true);
  mmx_delete<I> (t, spc);
}
void square_kronecker ( unsigned short int *  dest,
const unsigned short int *  src1,
nat  n1 
)

Definition at line 215 of file kronecker_int.cpp.

void square_kronecker ( unsigned long int *  dest,
const unsigned long int *  src1,
nat  n1 
)

Definition at line 219 of file kronecker_int.cpp.

void square_kronecker ( unsigned char *  dest,
const unsigned char *  src1,
nat  n1 
)

Definition at line 213 of file kronecker_int.cpp.

void mmx::square_kronecker ( polynomial< C, V > *  dest,
const polynomial< C, V > *  s,
nat  n 
) [inline]

Definition at line 84 of file kronecker_polynomial.hpp.

References decode_kronecker(), encode_kronecker(), max_polynomial_size(), and Polynomial.

                                                                {
  typedef implementation<polynomial_linear,V> Pol;
  if (n == 0) return;
  if (n == 1) { dest[0]= square_op::op (s[0]); return; }
  nat m = (max_polynomial_size (s, n) << 1) - 1;
  Polynomial x;
  encode_kronecker (x, s, n, m);
  x= square_op::op (x);
  decode_kronecker (dest, x, (n << 1) - 1, m); }
void square_kronecker ( signed char *  dest,
const signed char *  src1,
nat  n1 
)
void square_kronecker ( unsigned long long int *  dest,
const unsigned long long int *  src1,
nat  n1 
)

Definition at line 221 of file kronecker_int.cpp.

void square_kronecker ( long int *  dest,
const long int *  src1,
nat  n1 
)

Definition at line 218 of file kronecker_int.cpp.

static void mmx::square_kronecker_int ( I *  dest,
const I *  src,
nat  n 
) [inline, static]

Definition at line 194 of file kronecker_int.cpp.

References decode_kronecker(), encode_kronecker(), I, and square().

                                                    {
  if (n == 0) return;
  for (nat i= 0; i < 2 * n - 1; i++) dest[i]= 0;
  while (n > 0 && src[n-1] == 0) n--;
  if (n == 0) return;
  if (n == 1) { dest[0]= square (src[0]); return; }

  xnat bits= 16 * sizeof (I) + bit_size (n);
  integer aux1;
  encode_kronecker (aux1, src, n, bits);
  integer aux= square (aux1);
  decode_kronecker (dest, 2*n - 1, bits, aux);
}
void square_kronecker_mod ( unsigned char *  dest,
const unsigned char *  src1,
nat  n1,
const unsigned char &  p 
)

Definition at line 152 of file kronecker_modular_int.cpp.

void square_kronecker_mod ( unsigned int *  dest,
const unsigned int *  src1,
nat  n1,
const unsigned int &  p 
)

Definition at line 156 of file kronecker_modular_int.cpp.

void square_kronecker_mod ( unsigned long long int *  dest,
const unsigned long long int *  src1,
nat  n1,
const unsigned long long int &  p 
)

Definition at line 160 of file kronecker_modular_int.cpp.

void square_kronecker_mod ( signed char *  dest,
const signed char *  src1,
nat  n1,
const signed char &  p 
)

Definition at line 151 of file kronecker_modular_int.cpp.

Referenced by square_kronecker().

void square_kronecker_mod ( short int *  dest,
const short int *  src1,
nat  n1,
const short int &  p 
)

Definition at line 153 of file kronecker_modular_int.cpp.

void square_kronecker_mod ( int *  dest,
const int *  src1,
nat  n1,
const int &  p 
)

Definition at line 155 of file kronecker_modular_int.cpp.

void square_kronecker_mod ( long long int *  dest,
const long long int *  src1,
nat  n1,
const long long int &  p 
)

Definition at line 159 of file kronecker_modular_int.cpp.

void square_kronecker_mod ( unsigned short int *  dest,
const unsigned short int *  src1,
nat  n1,
const unsigned short int &  p 
)

Definition at line 154 of file kronecker_modular_int.cpp.

void square_kronecker_mod ( unsigned long int *  dest,
const unsigned long int *  src1,
nat  n1,
const unsigned long int &  p 
)

Definition at line 158 of file kronecker_modular_int.cpp.

void square_kronecker_mod ( long int *  dest,
const long int *  src1,
nat  n1,
const long int &  p 
)

Definition at line 157 of file kronecker_modular_int.cpp.

static void mmx::square_kronecker_mod_int ( I *  dest,
const I *  src,
nat  n,
const I &  p 
) [inline, static]

Definition at line 134 of file kronecker_modular_int.cpp.

References decode_kronecker_mod(), encode_kronecker(), and square().

                                                                    {
  if (n == 0) return;
  for (nat i= 0; i < 2 * n - 1; i++) dest[i]= 0;
  while (n > 0 && src[n-1] == 0) n--;
  if (n == 0) return;
  if (n == 1) { dest[0]= square (src[0]); return; }

  xnat bits= 2 * bit_size (p-1) + bit_size (n);
  integer aux1;
  encode_kronecker (aux1, src, n, bits);
  integer aux= square (aux1);
  decode_kronecker_mod (dest, 2*n - 1, bits, aux, p);
}
mmx::STRICT_COMPARE_SUGAR ( template< typename C, typename V ,
matrix< C, V  
)
mmx::STYPE_TO_TYPE ( template< typename C, typename V ,
scalar_type  ,
matrix< C, V ,
 
)
mmx::STYPE_TO_TYPE ( template< typename C, typename V ,
scalar_type  ,
polynomial< C, V ,
 
)
mmx::STYPE_TO_TYPE ( template< typename C, typename Extension >  ,
scalar_type  ,
algebraic< C, Extension >  ,
 
)
mmx::STYPE_TO_TYPE ( template< typename C, typename V, typename W >  ,
as_vector_type  ,
series< vector< C, W >, V ,
vector< series< C, V >, W >   
)
mmx::STYPE_TO_TYPE ( template< typename C, typename V, typename U >  ,
as_matrix_type  ,
series< matrix< C, U >, V ,
matrix< series< C, V >, U >   
)
mmx::STYPE_TO_TYPE ( template< typename C, typename V ,
monomial_type  ,
polynomial< C, V ,
nat   
)
polynomial<C,V> mmx::subresultant ( const polynomial< C, V > &  P,
const polynomial< C, V > &  Q,
int  k,
polynomial< C, V > &  coP 
) [inline]

Definition at line 938 of file polynomial.hpp.

References C, CF(), deg(), and Polynomial.

                               {
  typedef implementation<polynomial_subresultant,V> Pol;
  int n= deg (P), m= deg (Q);
  nat l= max (min (n, m), 0);
  ASSERT (k < l, "index out of range");
  Polynomial d;
  C zero= promote (0, CF(P)), one= promote (1, CF(P));
  vector<Polynomial>
    res (Polynomial (zero), l),
    co_P (Polynomial (zero), l),
    co_Q (Polynomial (zero), 0); 
  res [k]= Polynomial (one);
  co_P[k]= Polynomial (one);
  Pol::subresultant_sequence (P, Q, res, co_P, co_Q,
                              d, d, d, d, d, d, 0);
  coP= co_P[k];
  return res[k];
}
polynomial<C,V> mmx::subresultant ( const polynomial< C, V > &  P,
const polynomial< C, V > &  Q,
int  k,
polynomial< C, V > &  coP,
polynomial< C, V > &  coQ 
) [inline]

Definition at line 916 of file polynomial.hpp.

References C, CF(), deg(), and Polynomial.

Referenced by GLUE_26(), GLUE_32(), GLUE_34(), GLUE_85(), implementation< polynomial_subresultant_base, V, polynomial_ring_naive< W > >::subresultant(), and implementation< polynomial_subresultant_base, V, polynomial_ring_naive< W > >::subresultant_sequence().

                                                {
  typedef implementation<polynomial_subresultant,V> Pol;
  int n= deg (P), m= deg (Q);
  nat l= max (min (n, m), 0);
  ASSERT (k < l, "index out of range");
  C zero= promote (0, CF(P)), one= promote (1, CF(P));
  Polynomial d; 
  vector<Polynomial>
    res (Polynomial (zero), l),
    co_P (Polynomial (zero), l),
    co_Q (Polynomial (zero), l); 
  res [k]= Polynomial (one);
  co_P[k]= Polynomial (one);
  co_Q[k]= Polynomial (one);
  Pol::subresultant_sequence (P, Q, res, co_P, co_Q,
                              d, d, d, d, d, d, 0);
  coP= co_P[k]; coQ= co_Q[k];
  return res[k];
}
polynomial<C,V> mmx::subresultant ( const polynomial< C, V > &  P,
const polynomial< C, V > &  Q,
int  k 
) [inline]

Definition at line 959 of file polynomial.hpp.

References C, CF(), deg(), and Polynomial.

                                                               {
  typedef implementation<polynomial_subresultant,V> Pol;
  if (k < 0) return promote (0, P);
  int n= deg (P), m= deg (Q);
  nat l= max (min (n, m), 0);
  ASSERT ((nat) k < l, "index out of range");
  Polynomial d;
  C zero= promote (0, CF(P)), one= promote (1, CF(P));
  vector<Polynomial>
    res (Polynomial (zero), l),
    co_P (Polynomial (zero), 0),
    co_Q (Polynomial (zero), 0);
  res [k]= Polynomial (one);
  Pol::subresultant_sequence (P, Q, res, co_P, co_Q,
                              d, d, d, d, d, d, 0);
  return res[k];
}
vector< polynomial<C,V> > mmx::subresultants ( const polynomial< C, V > &  P,
const polynomial< C, V > &  Q,
vector< polynomial< C, V > > &  co_P,
vector< polynomial< C, V > > &  co_Q 
) [inline]
Examples:
polynomial_int_test.cpp, polynomial_integer_test.cpp, polynomial_modular_test.cpp, and polynomial_polynomial_test.cpp.

Definition at line 873 of file polynomial.hpp.

References C, CF(), deg(), and Polynomial.

Referenced by wrap_subresultants().

                                                                   {
  typedef implementation<polynomial_subresultant,V> Pol;
  int n= deg (P), m= deg (Q); nat l= max (min (n, m), 0);
  C one= promote (1, CF(P));
  Polynomial d; vector<Polynomial> res (Polynomial (one), l);
  co_P= vector<Polynomial> (Polynomial (one), l);
  co_Q= vector<Polynomial> (Polynomial (one), l); 
  Pol::subresultant_sequence (P, Q, res, co_P, co_Q,
                              d, d, d, d, d, d, 0);
  return res;
}
vector< polynomial<C,V> > mmx::subresultants ( const polynomial< C, V > &  P,
const polynomial< C, V > &  Q 
) [inline]

Definition at line 901 of file polynomial.hpp.

References C, CF(), deg(), and Polynomial.

                                                         {
  typedef implementation<polynomial_subresultant,V> Pol;
  int n= deg (P), m= deg (Q); nat l= max (min (n, m), 0);
  Polynomial d;
  C zero= promote (0, CF(P)), one= promote (1, CF(P));
  vector<Polynomial>
    res (Polynomial(one), l),
    co_P (Polynomial (zero), 0),
    co_Q (Polynomial (zero), 0); 
  Pol::subresultant_sequence (P, Q, res, co_P, co_Q,
                              d, d, d, d, d, d, 0);
  return res;
}
vector< polynomial<C,V> > mmx::subresultants ( const polynomial< C, V > &  P,
const polynomial< C, V > &  Q,
vector< polynomial< C, V > > &  co_P 
) [inline]

Definition at line 887 of file polynomial.hpp.

References C, CF(), deg(), and Polynomial.

                                         {
  typedef implementation<polynomial_subresultant,V> Pol;
  int n= deg (P), m= deg (Q); nat l= max (min (n, m), 0);
  Polynomial d;
  C zero= promote (0, CF(P)), one= promote (1, CF(P));
  vector<Polynomial> res (Polynomial (one), l), co_Q (Polynomial (zero), 0); 
  co_P= vector<Polynomial> (Polynomial (one), l);
  Pol::subresultant_sequence (P, Q, res, co_P, co_Q,
                              d, d, d, d, d, d, 0);
  return res;
}
unknown<C,V> mmx::substitute ( const unknown< C, V > &  c)

Definition at line 250 of file series_implicit.hpp.

References C, and UC.

Referenced by solver_series_rep< C, V >::next(), subst_mul_series_rep< C, V, UV >::next(), known_series_rep< C, V, UV >::next(), and operator*().

                         {
  //mmerr << "    substitute " << c << "\n";
  if (c->i1 == c->i2 || c->i1 >= c->f->n * c->f->m) return c;
  nat i1= min (c->f->n * c->f->m, c->i2);
  nat d= i1 - c->i1;
  nat n= c->i2 - i1;
  C*  s= mmx_new<C> (n);
  C   b= c->b;
  for (nat i=0; i<d; i++) {
    nat k= (i + c->i1) / c->f->m;
    nat j= (i + c->i1) % c->f->m;
    b += c->s[i] * c->f->a[k][j];
  }
  for (nat i=0; i<n; i++)
    s[i]= c->s[i + d];
  return UC (c->f, b, s, i1, c->i2);
}
void mmx::swap_col ( matrix< C, V > &  m,
nat  i,
nat  j 
)

Definition at line 960 of file matrix.hpp.

References cols(), is_non_scalar(), rows(), and tab().

                                   {
  typedef implementation<matrix_linear,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  nat mrows= rows (m), mcols= cols (m);
  ASSERT (i < mcols && j < mcols, "out of range");
  Mat::col_swap (tab (m), i, j, mrows, mcols);
}
void mmx::swap_row ( matrix< C, V > &  m,
nat  i,
nat  j 
)
Examples:
matrix_test.cpp.

Definition at line 951 of file matrix.hpp.

References cols(), is_non_scalar(), rows(), and tab().

Referenced by bareiss_extended_pivoting(), and bareiss_pivoting().

                                   {
  typedef implementation<matrix_linear,V> Mat;
  ASSERT (is_non_scalar (m), "non-scalar matrix expected");
  nat mrows= rows (m), mcols= cols (m);
  ASSERT (i < mrows && j < mrows, "out of range");
  Mat::row_swap (tab (m), i, j, mrows, mcols);
}
static vector< series<M,V> ,W> mmx::system_root_series ( const vector< generic > &  f,
const vector< generic > &  x,
const vector< M, W > &  y0 
) [inline, static]

Definition at line 859 of file series_carry_naive.hpp.

References as_vector(), recursive(), and Series_vector.

                                      {
  typedef system_root_series_rep<M,V,W> Sys_root_rep;
  Series_vector s= (series_rep<Vector,V>*) new Sys_root_rep (f, x, y0);
  return as_vector (recursive(s));
}
const C * tab ( const matrix< C, V > &  m) [inline]

Definition at line 189 of file matrix.hpp.

{ return m->a; }
series<C,V> mmx::tan ( const series< C, V > &  f) [inline]
Examples:
series_test.cpp.

Definition at line 124 of file series_elementary.hpp.

Referenced by GLUE_39(), and GLUE_54().

                      {
  return unary_recursive_series<tan_op> (f);
}
matrix<C> mmx::tensor_matrix ( const vector< C > &  v,
const vector< C > &  w 
)

Definition at line 709 of file matrix.hpp.

References CF(), is_non_scalar(), and N().

Referenced by GLUE_21(), GLUE_24(), GLUE_38(), and GLUE_83().

                                                       {
  ASSERT (is_non_scalar (v), "non-scalar vector expected");
  ASSERT (is_non_scalar (w), "non-scalar vector expected");
  matrix<C> m (promote (0, CF(v)), N(v), N(w));
  for (nat i=0; i<N(v); i++)
    for (nat j=0; j<N(w); j++)
      m (i, j)= v[i] * w[j];
  return m;
}
series<C,V> mmx::ternary_scalar_series ( const series< C, V > &  f,
const X &  x,
const Y &  y 
) [inline]

Definition at line 545 of file series.hpp.

References Series_rep.

                                                                {
  typedef implementation<series_scalar_abstractions,V> Ser;
  typedef typename Ser::template ternary_scalar_series_rep<Op,C,V,X,Y>
    Ternary_rep;
  return (Series_rep*) new Ternary_rep (f, x, y);
}
polynomial<C,typename polynomial_variant_helper< C >::PV > mmx::tevaluate ( const vector< C > &  v,
const vector< C > &  x,
nat  l 
) [inline]

Definition at line 1173 of file polynomial.hpp.

                                                    {
  return tevaluate_bis<C,typename Polynomial_variant(C) > (v, x, l);
}
polynomial<C,typename polynomial_variant_helper< C >::PV > mmx::tevaluate ( const C &  v,
const C &  x,
nat  n 
) [inline]

Definition at line 1151 of file polynomial.hpp.

Referenced by implementation< polynomial_evaluate, V, polynomial_naive >::tevaluate(), and tevaluate_bis().

                                          {
  return tevaluate_bis<C,typename Polynomial_variant(C) > (v, x, n);
}
polynomial<C,V> mmx::tevaluate_bis ( const C &  v,
const C &  x,
nat  n 
) [inline]

Definition at line 1142 of file polynomial.hpp.

References C, Polynomial, and tevaluate().

                                              {
  typedef implementation<polynomial_evaluate,V> Pol;
  nat l= aligned_size<C,V> (n);
  C* buf= mmx_formatted_new<C> (l, get_format (v));
  Pol::tevaluate (v, buf, x, n);
  return Polynomial (buf, n, l, get_format (v));
}
polynomial<C,V> mmx::tevaluate_bis ( const vector< C > &  v,
const vector< C > &  x,
nat  l 
) [inline]

Definition at line 1167 of file polynomial.hpp.

                                                        {
  typedef implementation<polynomial_evaluate,V> Pol;
  return Pol::template tevaluate<Polynomial> (v, x, l);
}
algebraic_number mmx::times_i ( const algebraic_number &  z) [inline]

Definition at line 397 of file algebraic_number.hpp.

Referenced by gaussian(), and GLUE_58().

                                    {
  return z * imaginary_cst<algebraic_number> ();
}
vector<C> mmx::tinterpolate ( const polynomial< C, V > &  p,
const vector< C > &  x 
)

Definition at line 1189 of file polynomial.hpp.

Referenced by implementation< polynomial_evaluate, V, polynomial_naive >::tinterpolate().

                                                    {
  typedef implementation<polynomial_evaluate,V> Pol;
  return Pol::tinterpolate (p, x);
}
polynomial<C,V> mmx::tmul ( int  d2,
const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Transposed multiplication. The returned polynomial has degree at most d2.

Definition at line 515 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

Referenced by implementation< polynomial_multiply, V, polynomial_kronecker< W > >::tmul(), implementation< polynomial_multiply, V, polynomial_karatsuba< W > >::tmultiply(), implementation< polynomial_divide, V, polynomial_ring_dicho_inc< W > >::tquo_rem(), and implementation< polynomial_divide, V, polynomial_dicho< BV > >::tquo_rem().

                                                          {
  typedef implementation<polynomial_multiply,V> Pol;
  nat n2 = max (0, d2 + 1), n1= N(P1), n= N(P2);
  if (n1 == 0 || n2 == 0) return Polynomial (CF(P1));
  ASSERT (n < n1 + n2, "bad dimension in tmul");
  nat l2= aligned_size<C,V> (n2);
  C* r= mmx_formatted_new<C> (l2, CF(P1));
  if (n != n1 + n2 - 1) {
    nat l= aligned_size<C,V> (n1+n2-1);
    C* s2= mmx_formatted_new<C> (l, CF(P1));
    Pol::copy (s2, seg (P2), n);
    Pol::clear (s2 + n, n1+n2-n-1);
    Pol::tmul (r, seg (P1), s2, n1, n2);
    mmx_delete<C> (s2, l);
  }
  else
    Pol::tmul (r, seg (P1), seg (P2), n1, n2);
  return Polynomial (r, n2, l2, CF(P1));
}
matrix<C> mmx::toeplitz_matrix ( const vector< C > &  v)

Definition at line 749 of file matrix.hpp.

References CF(), and N().

Referenced by GLUE_19(), GLUE_22(), GLUE_36(), and GLUE_81().

                                     {
  ASSERT ((N(v)&1) == 1, "odd dimension expected");
  nat n= (N(v) >> 1) + 1;
  matrix<C> m (promote (0, CF(v)), n, n);
  for (nat i=0; i<n; i++)
    for (nat j=0; j<n; j++)
      m (i, j)= v [n-1 + i-j];
  return m;
}
polynomial<C,V> mmx::tquo ( int  d1,
const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Transposed quotient in the division in degree d1 by P2.

Definition at line 644 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

                                                          {
  typedef implementation<polynomial_divide,V> Pol;
  nat n1= max (0, d1+1), n= N(P1), n2= N(P2);
  ASSERT (n <= n1-n2+1, "bad dimension in tquo");
  if (n1 < n2 || n2 == 0) return Polynomial (CF(P1));
  nat l= aligned_size<C,V> (n1);
  C* q= mmx_formatted_new<C> (l, CF(P1));
  C* r= mmx_formatted_new<C> (l, CF(P1));
  Pol::clear (r, n1);
  Pol::copy  (r+n2-1, seg (P1), n);
  Pol::tquo_rem (q, r, seg (P2), n1, n2);
  mmx_delete<C> (r, l);
  return Polynomial (q, n1, l, CF(P1));
}
matrix<C,V> mmx::transpose ( const matrix< C, V > &  m)
Examples:
matrix_test.cpp, and pivot_test.cpp.

Definition at line 813 of file matrix.hpp.

References CF(), cols(), is_a_scalar(), Matrix, rows(), and tab().

Referenced by bareiss_image(), bareiss_kernel(), GLUE_14(), GLUE_16(), GLUE_17(), GLUE_31(), join(), and row_echelon().

                             {
  typedef implementation<matrix_linear,V> Mat;
  if (is_a_scalar (m)) return m;
  nat nrows= rows (m), ncols= cols (m);
  nat l= aligned_size<C,V> (nrows * ncols);
  C*  r= mmx_formatted_new<C> (l, CF(m));
  Mat::transpose (r, tab (m), nrows, ncols);
  return Matrix (r, ncols, nrows, CF(m));
}
permutation transposition ( nat  i,
nat  j,
nat  n 
)

Definition at line 20 of file permutation.cpp.

References id_vector().

Referenced by GLUE_3().

                                    {
  vector<nat> v= id_vector (n);
  v[i]= j;
  v[j]= i;
  return permutation (v);
}
polynomial<C,V> mmx::trem ( int  d1,
const polynomial< C, V > &  P1,
const polynomial< C, V > &  P2 
)

Transposed remainder in the division in degree d1 by P2.

Definition at line 697 of file polynomial.hpp.

References C, CF(), copy(), N(), Polynomial, and seg().

                                                          {
  typedef implementation<polynomial_divide,V> Pol;
  nat n1= max (0, d1+1), n= N(P1), n2= N(P2);
  ASSERT (n <= n2-1, "bad dimension in trem");
  if (n1 < n2 || n2 == 0) return P1;
  nat l= aligned_size<C,V> (n1);
  C* q= mmx_formatted_new<C> (l, CF(P1));
  C* r= mmx_formatted_new<C> (l, CF(P1));
  Pol::copy  (r, seg (P1), n);
  Pol::clear (r+n, n1-n);
  Pol::tquo_rem (q, r, seg (P2), n1, n2);
  mmx_delete<C> (r, l);
  return Polynomial (q, n1, l, CF(P1));
}
series<C,V> series<C,V> series<vector<C,W>,V> mmx::trig ( const series< vector< C, W >, V > &  f) [inline]

Definition at line 104 of file series_elementary.hpp.

Referenced by cos_sin().

                                      {
  return unary_recursive_series<trig_op> (f);
}
Extension mmx::trivial_extension ( const format< C > &  fm) [inline]

Definition at line 54 of file algebraic.hpp.

References trivial_extension_helper< FT, C, Extension >::ext().

                                        {
  typedef typename format<C>::FT FT;
  return trivial_extension_helper<FT,C,Extension>::ext (fm);
}
Extension mmx::trivial_extension ( ) [inline]

Definition at line 48 of file algebraic.hpp.

References trivial_extension_helper< FT, C, Extension >::ext().

                     {
  typedef typename format<C>::FT FT;
  return trivial_extension_helper<FT,C,Extension>::ext ();
}
mmx::TRUE_IDENTITY_OP_SUGAR ( template< typename C, typename V ,
polynomial< C, V  
)
mmx::TRUE_IDENTITY_OP_SUGAR ( template< typename C, typename V ,
unknown< C, V  
)
mmx::TRUE_IDENTITY_OP_SUGAR ( template< typename C, typename V ,
matrix< C, V  
)
polynomial<C, typename series_polynomial_helper<C,V>::PV> mmx::truncate ( const series< C, V > &  f,
nat  n 
)

Definition at line 226 of file series.hpp.

References C, CF(), and Polynomial.

Referenced by binary_scalar_recursive_monoblock_series_rep< Op, M, V, s, BV, t, X >::Increase_order().

                                  {
  typedef typename series_polynomial_helper<C,V>::PV PV;
  nat l= aligned_size<C,PV> (n);
  C* coeffs= mmx_formatted_new<C> (l, CF(f));
  if (n>0) (void) f[n-1];
  for (nat i=0; i<n; i++) coeffs[i]= f[i];
  return Polynomial (coeffs, n, l, CF(f));
}
series<C,V> mmx::truncate_mul ( const series< C, V > &  f,
const series< C, V > &  g,
nat  nf,
nat  ng 
) [inline]
series<M,V> mmx::truncate_mul_monoblock_series ( const series< M, V > &  f,
const series< M, V > &  g,
nat  nf,
nat  ng 
) [inline]

Definition at line 271 of file series_carry_blocks.hpp.

References Series_rep.

                                               {
  typedef truncate_mul_monoblock_series_rep<M,V,s,BV,t> Mul_rep;
  return (Series_rep*) new Mul_rep (f, g, nf, ng); }
nat mmx::unary_hash ( const matrix< C, V > &  m)

Definition at line 402 of file matrix.hpp.

References cols(), and rows().

                                  {
  register nat i, j, h= 214365, nr= rows (m), nc= cols (m);
  for (i=0; i<nr; i++)
    for (j=0; j<nc; j++)
      h= (h<<1) ^ (h<<5) ^ (h>>27) ^ Op::op (m (i, j));
  return h;
}
nat mmx::unary_hash ( const unknown< C, V > &  c)

Definition at line 125 of file series_implicit.hpp.

                         {
  register nat i, h= 78460;
  if (c->i1 == c->i2) return Op::op (c->b) ^ h;
  h += (c->i1 << 3) ^ Op::op (c->b);
  for (i=0; i<c->i2 - c->i1; i++)
    h= (h<<1) ^ (h<<5) ^ (h>>27) ^ Op::op (c->s[i]);
  return h;
}
nat mmx::unary_hash ( const polynomial< C, V > &  p)

Definition at line 267 of file polynomial.hpp.

References N().

                                 {
  register nat i, h= 642531, n= N(p);
  for (i=0; i<n; i++)
    h= (h<<1) ^ (h<<5) ^ (h>>27) ^ Op::op (p[i]);
  return h;
}
V nat mmx::unary_hash ( const series< C, V > &  s)

Definition at line 275 of file series.hpp.

                             {
  register nat i, h= 7531;
  for (i=0; i< Series::get_cancel_order (); i++)
    h= (h<<1) ^ (h<<5) ^ (h>>27) ^ Op::op (s[i]);
  return h;
}
polynomial<Unary_return_type(Op,C),V> mmx::unary_map ( const polynomial< C, V > &  p)

Definition at line 1308 of file polynomial.hpp.

References C, CF(), N(), seg(), and Unary_return_type().

                                     {
  typedef implementation<vector_linear,V> Vec;
  typedef Unary_return_type(Op,C) T;
  nat n= N(p);
  nat l= aligned_size<T,V> (n);
  format<T> fm= unary_map<Op> (CF(p));
  T* r= mmx_formatted_new<T> (l, fm);
  Vec::template vec_unary<Op> (r, seg (p), n);
  return polynomial<T,V> (r, n, l, fm);
}
matrix<Unary_return_type(Op,C),V> mmx::unary_map ( const matrix< C, V > &  m)

Definition at line 412 of file matrix.hpp.

References C, CF(), cols(), is_a_scalar(), rows(), matrix< C, V >::scalar(), tab(), and Unary_return_type().

                                 {
  typedef implementation<vector_linear,V> Vec;
  typedef Unary_return_type(Op,C) T;
  format<T> fm= unary_map<Op> (CF(m));
  if (is_a_scalar (m)) return matrix<T,V> (Op::op (m.scalar()));
  nat nrows= rows (m);
  nat ncols= cols (m);
  nat l= aligned_size<T,V> (nrows * ncols);
  T*  r= mmx_formatted_new<T> (l, fm);
  Vec::template vec_unary<Op> (r, tab (m), nrows*ncols);
  return matrix<T,V> (r, nrows, ncols, fm);
}
series<C,V> mmx::unary_map_as ( const series< S, SV > &  f)

Definition at line 557 of file series.hpp.

References Series_rep.

                                     {
  typedef implementation<series_map_as_abstractions,V> Ser;
  typedef typename Ser::
    template unary_map_as_series_rep<Op,C,V,S,SV> Map_as_rep;
  return (Series_rep*) new Map_as_rep (f);
}
series<C,V> mmx::unary_recursive_series ( const series< C, V > &  f) [inline]

Definition at line 615 of file series.hpp.

References recursive(), Series, and Series_rep.

                                         {
  typedef implementation<series_recursive_abstractions,V> Ser;
  typedef typename Ser::template unary_recursive_series_rep<Op,C,V> Unary;
  Series_rep* rep= new Unary (f);
  return recursive (Series (rep));
}
series<C,V> mmx::unary_recursive_series ( const series< C, V > &  f,
const C &  c 
) [inline]

Definition at line 623 of file series.hpp.

References recursive(), Series, and Series_rep.

                                                     {
  typedef implementation<series_recursive_abstractions,V> Ser;
  typedef typename Ser::template unary_recursive_series_rep<Op,C,V> Unary;
  Series_rep* rep= new Unary (f, c);
  return recursive (Series (rep));
}
mmx::UNARY_RETURN_TYPE ( template< typename C, typename V ,
abs_op  ,
polynomial< C, V ,
polynomial< Abs_type(C), V  
)
mmx::UNARY_RETURN_TYPE ( template< typename C, typename V ,
center_op  ,
polynomial< C, V ,
polynomial< Center_type(C), V  
)
mmx::UNARY_RETURN_TYPE ( template< typename NT, typename DT >  ,
numerator_op  ,
quotient< NT, DT >  ,
NT   
)
mmx::UNARY_RETURN_TYPE ( STMPL  ,
abs_op  ,
algebraic_number  ,
algebraic_real   
)
mmx::UNARY_RETURN_TYPE ( template< typename C, typename V ,
abs_op  ,
matrix< C, V ,
matrix< Abs_type(C), V  
)
mmx::UNARY_RETURN_TYPE ( STMPL  ,
Re_op  ,
algebraic_number  ,
algebraic_real   
)
mmx::UNARY_RETURN_TYPE ( template< typename C, typename V ,
Re_op  ,
matrix< C, V ,
matrix< Real_type(C), V  
)
mmx::UNARY_RETURN_TYPE ( template< typename C, typename V ,
radius_op  ,
matrix< C, V ,
matrix< Radius_type(C), V  
)
Unary_return_type ( Op  ,
 
) const

Referenced by unary_map().

mmx::UNARY_RETURN_TYPE ( template< typename C, typename V ,
center_op  ,
matrix< C, V ,
matrix< Center_type(C), V  
)
mmx::UNARY_RETURN_TYPE ( template< typename C, typename V ,
radius_op  ,
polynomial< C, V ,
polynomial< Radius_type(C), V  
)
mmx::UNARY_RETURN_TYPE ( template< typename C, typename V ,
Re_op  ,
polynomial< C, V ,
polynomial< Real_type(C), V  
)
mmx::UNARY_RETURN_TYPE ( template< typename NT, typename DT >  ,
denominator_op  ,
quotient< NT, DT >  ,
DT   
)
series<C,V> mmx::unary_series ( const series< C, V > &  f) [inline]

Definition at line 661 of file series.hpp.

References Series_rep.

                               {
  typedef implementation<series_abstractions,V> Ser;
  typedef typename Ser::template unary_series_rep<Op,C,V> Unary;
  return (Series_rep*) new Unary (f);
}
matrix<T,V>& mmx::unary_set ( matrix< T, V > &  m,
const matrix< C, V > &  n 
)

Definition at line 469 of file matrix.hpp.

References cols(), extend(), is_a_scalar(), is_non_scalar(), rows(), matrix< C, V >::scalar(), and tab().

                                                 {
  typedef implementation<vector_linear,V> Vec;
  if (is_a_scalar (m) || is_a_scalar (n)) {
    if (is_non_scalar (m))
      return unary_set<Op> (m, extend (n, m));
    else if (is_non_scalar (n))
      m= extend (m, n);
    else {
      Op::set_op (m.scalar(), n.scalar());
      return m;
    }
  }
  nat nrows= rows (m);
  nat ncols= cols (m);
  ASSERT (rows (n) == nrows, "unequal number of rows");
  ASSERT (cols (n) == ncols, "unequal number of columns");
  Vec::template vec_unary<Op> (tab (m), tab (n), nrows*ncols);
  return m;
}
matrix<T,V>& mmx::unary_set_scalar ( matrix< T, V > &  m,
const X &  x 
)

Definition at line 490 of file matrix.hpp.

References cols(), is_a_scalar(), rows(), matrix< C, V >::scalar(), and tab().

                                              {
  typedef implementation<vector_linear,V> Vec;
  if (is_a_scalar (m)) {
    Op::set_op (m.scalar(), x);
    return m;
  }
  nat nrows= rows (m);
  nat ncols= cols (m);
  Vec::template vec_unary_scalar<Op> (tab (m), x, nrows*ncols);
  return m;
}
series< unknown<C,V> > mmx::unknown_series ( solver_series_rep< C, V > *  f,
nat  k 
)

Definition at line 346 of file series_implicit.hpp.

References USeries_rep.

Referenced by solver_series_rep< C, V >::me().

                                      {
  return (USeries_rep*) new unknown_series_rep<C> (f, k);
}
algebraic_extension<C> mmx::upgrade ( const algebraic_extension< C > &  ext1,
const algebraic_extension< C > &  ext2,
typename algebraic_extension< C >::El &  p1,
typename algebraic_extension< C >::El &  p2 
)

Definition at line 295 of file algebraic_extension.hpp.

References CF(), compose(), Element, Extension, hard_eq(), and join().

{
  if (hard_eq (ext1, ext2)) return ext1;
  Element z1= promote (0, CF(ext1)), z2= promote (0, CF(ext1));
  Extension ext= join (ext1, ext2, z1, z2);
  if (!hard_eq (ext1, ext)) p1= compose (ext, p1, z1);
  if (!hard_eq (ext2, ext)) p2= compose (ext, p2, z2);
  return ext;
}
algebraic_number_extension<C,Ball> mmx::upgrade ( const algebraic_number_extension< C, Ball > &  ext1,
const algebraic_number_extension< C, Ball > &  ext2,
typename algebraic_number_extension< C, Ball >::El &  p1,
typename algebraic_number_extension< C, Ball >::El &  p2 
)

Definition at line 341 of file algebraic_number.hpp.

References compose(), Element, Field, hard_eq(), and join().

                                                                         {
  if (hard_eq (ext1, ext2)) return ext1;
  Element z1, z2;
  Field ext= join (ext1, ext2, z1, z2);
  if (!hard_eq (ext1, ext)) p1= compose (ext.ext, p1, z1);
  if (!hard_eq (ext2, ext)) p2= compose (ext.ext, p2, z2);
  return ext;
}
void mmx::upgrade ( algebraic< C, Extension > &  a1,
algebraic< C, Extension > &  a2 
) [inline]

Definition at line 166 of file algebraic.hpp.

References Algebraic, Element, Extension, field(), hard_neq(), and value().

Referenced by operator*(), operator+(), operator-(), and operator/().

                                       {
  if (hard_neq (field (a1), field (a2))) {
    Element p1= value (a1), p2= value (a2);
    Extension ext= upgrade (field (a1), field (a2), p1, p2);
    a1= Algebraic (ext, p1);
    a2= Algebraic (ext, p2);
  }
}
polynomial<Center_type(C),V> mmx::upper ( const polynomial< C, V > &  p)

Definition at line 1404 of file polynomial.hpp.

                                                   {
  return unary_map<upper_op> (p); }
matrix<Center_type(C),V> mmx::upper ( const matrix< C, V > &  m)

Definition at line 680 of file matrix.hpp.

                                           {
  return unary_map<upper_op> (m); }
int mmx::val ( const polynomial< C, V > &  P)

Definition at line 354 of file polynomial.hpp.

References N().

Referenced by cols(), divides(), REP_STRUCT_1(), rows(), implementation< polynomial_subresultant_base, V, polynomial_naive >::subresultant_sequence(), and val().

                          {
  for (nat i=0; i<N(P); i++)
    if (P[i] != 0) return (int) i;
  return (int) (((nat) (-1)) >> 1);
}
int mmx::val ( const series< C, V > &  f)

Definition at line 330 of file series.hpp.

                      {
  for (nat n=0; n< Series::get_cancel_order (); n++)
    if (f[n] != 0) return n;
  return (int) (((nat) (-1)) >> 1);
}
int mmx::val ( const quotient_series< Series, Monomial > &  f,
const typename Series::variable_type &  v 
) [inline]

Definition at line 117 of file quotient_series.hpp.

References val().

                                                                  {
  return val (f->f, v) * f->m[v]; }
matrix<C> mmx::vandermonde ( const vector< C > &  v)

Definition at line 729 of file matrix.hpp.

References CF(), is_non_scalar(), and N().

Referenced by GLUE_22(), GLUE_25(), GLUE_39(), and GLUE_84().

                                 {
  ASSERT (is_non_scalar (v), "non-scalar vector expected");
  matrix<C> m (promote (0, CF(v)), N(v), N(v));
  for (nat i=0; i<N(v); i++) {
    C p= promote (1, CF(v));
    for (nat j=0; j<N(v); j++, p *= v[i])
      m (i, j)= p;
  }
  return m;
}
generic mmx::var ( const polynomial< C, V > &  P) [inline]

Definition at line 300 of file polynomial.hpp.

Referenced by flatten().

                                              {
  (void) P; return Polynomial::get_variable_name (); }
generic mmx::var ( const series< C, V > &  f) [inline]

Definition at line 167 of file series.hpp.

                                          {
  (void) f; return Series::get_variable_name ();
}
table<bool, typename Series::variable_type > mmx::variables ( const quotient_series< Series, Monomial > &  f) [inline]

Definition at line 115 of file quotient_series.hpp.

                                                     {
  return variables (f->f) | variables (f->m); }
matrix<C,V> mmx::vertical_join ( const matrix< C, V > &  m1,
const matrix< C, V > &  m2 
)

Definition at line 794 of file matrix.hpp.

References CF(), cols(), is_non_scalar(), Matrix, and rows().

Referenced by GLUE_16(), GLUE_18(), GLUE_19(), GLUE_33(), and krylov().

                                                   {
  ASSERT (is_non_scalar (m1) || is_non_scalar (m2),
          "non-scalar matrix expected");
  if (!is_non_scalar (m1))
    return vertical_join (Matrix (m1.scalar(), cols (m2), cols (m2)), m2);
  if (!is_non_scalar (m2))
    return vertical_join (m1, Matrix (m2.scalar(), cols (m1), cols (m1)));
  ASSERT (cols (m1) == cols (m2), "unequal number of columns");
  Matrix r (promote (0, CF(m1)), rows (m1) + rows (m2), cols (m1));
  for (nat j=0; j<cols(m1); j++) {
    for (nat i=0; i<rows(m1); i++)
      r(i,j)= m1(i,j);
    for (nat i=0; i<rows(m2); i++)
      r(i+rows(m1),j)= m2(i,j);
  }
  return r;
}
mmx::WRAP_BINARY_IMPL ( STMPL  ,
permutation  ,
vector< nat >  ,
"Per"  ,
"Permutation"   
) const

Definition at line 69 of file permutation.hpp.

References N().

                                    { return N(p.v); }
vector< generic > wrap_column_reduced_echelon_with_permutation ( const matrix< C > &  m)

Definition at line 48 of file glue_matrix_generic.cpp.

References column_reduced_echelon().

Referenced by GLUE_108(), GLUE_38(), and GLUE_63().

                                                                    {
    permutation permut;
    generic tp=as<generic> (column_reduced_echelon (m, permut));
    return vec (tp, as<generic> (permut));
  }
vector< generic > wrap_column_reduced_echelon_with_transform ( const matrix< C > &  m)

Definition at line 55 of file glue_matrix_generic.cpp.

References column_reduced_echelon().

Referenced by GLUE_107(), GLUE_37(), and GLUE_62().

                                                                  {
    matrix<C> k;
    generic tp=as<generic> (column_reduced_echelon (m, k));
    return vec (tp, as<generic> (k));
  }
vector< generic > wrap_row_reduced_echelon_with_transform ( const matrix< C > &  m)

Definition at line 62 of file glue_matrix_generic.cpp.

References row_reduced_echelon().

Referenced by GLUE_106(), GLUE_36(), and GLUE_61().

                                                               {
    matrix<C> k;
    generic tp=as<generic> (row_reduced_echelon (m, k));
    return vec (tp, as<generic> (k));
  }
vector< generic > wrap_subresultants ( const polynomial< C > &  f,
const polynomial< C > &  g 
)

Definition at line 20 of file glue_algebraic_generic.cpp.

References subresultants().

Referenced by GLUE_27(), GLUE_33(), GLUE_35(), and GLUE_86().

                                                                        {
      return as<vector<generic> > (subresultants (f, g)); }
mmx::WRAP_WRAPPED_IMPL ( template< typename C >  inline,
multiplier< C >   
)
mmx::WRAP_WRAPPED_IMPL ( inline  ,
permutation   
)
series<C,V> mmx::xderive ( const series< C, V > &  f) [inline]

Definition at line 918 of file series.hpp.

References CF(), is_exact_zero(), Series, and Series_rep.

                          {
  if (is_exact_zero (f)) return Series (CF(f));
  return (Series_rep*) new xderive_series_rep<C,V> (f);
}
quotient<NT,DT> mmx::xderive ( const quotient< NT, DT > &  x)

Definition at line 313 of file quotient.hpp.

References denominator(), numerator(), Quotient, square(), and xderive().

                            {
  return Quotient (xderive (numerator (x)) * denominator (x) -
                   numerator (x) * xderive (denominator (x)),
                   square (denominator (x)),
                   true);
}
polynomial<C,V> mmx::xderive ( const polynomial< C, V > &  P)

Definition at line 1031 of file polynomial.hpp.

References C, CF(), N(), Polynomial, and seg().

Referenced by xderive_series_rep< C, V >::expression(), GLUE_122(), GLUE_17(), GLUE_18(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_75(), GLUE_96(), and xderive().

                              {
  typedef implementation<polynomial_linear,V> Pol;
  nat n= N(P);
  nat l= aligned_size<C,V> (n);
  C* r= mmx_formatted_new<C> (l, CF(P));
  Pol::xderive (r, seg (P), n);
  return Polynomial (r, n, l, CF(P));
}

Variable Documentation

static polynomial_carry_variant_helper< mmx_modular(integer) >::PV & arg_1

Definition at line 69 of file glue_p_adic_modular_integer.cpp.

Referenced by GLUE_1(), GLUE_10(), GLUE_100(), GLUE_101(), GLUE_102(), GLUE_103(), GLUE_104(), GLUE_105(), GLUE_106(), GLUE_107(), GLUE_108(), GLUE_109(), GLUE_11(), GLUE_110(), GLUE_111(), GLUE_112(), GLUE_114(), GLUE_116(), GLUE_118(), GLUE_119(), GLUE_12(), GLUE_120(), GLUE_121(), GLUE_122(), GLUE_123(), GLUE_124(), GLUE_125(), GLUE_126(), GLUE_128(), GLUE_129(), GLUE_13(), GLUE_130(), GLUE_131(), GLUE_132(), GLUE_133(), GLUE_134(), GLUE_135(), GLUE_136(), GLUE_137(), GLUE_138(), GLUE_139(), GLUE_140(), GLUE_141(), GLUE_142(), GLUE_143(), GLUE_144(), GLUE_17(), GLUE_18(), GLUE_19(), GLUE_2(), GLUE_20(), GLUE_21(), GLUE_22(), GLUE_23(), GLUE_24(), GLUE_25(), GLUE_26(), GLUE_27(), GLUE_28(), GLUE_29(), GLUE_3(), GLUE_30(), GLUE_31(), GLUE_32(), GLUE_33(), GLUE_34(), GLUE_35(), GLUE_36(), GLUE_37(), GLUE_39(), GLUE_4(), GLUE_40(), GLUE_42(), GLUE_43(), GLUE_46(), GLUE_47(), GLUE_5(), GLUE_50(), GLUE_51(), GLUE_52(), GLUE_53(), GLUE_54(), GLUE_55(), GLUE_56(), GLUE_57(), GLUE_58(), GLUE_59(), GLUE_6(), GLUE_60(), GLUE_61(), GLUE_62(), GLUE_63(), GLUE_64(), GLUE_65(), GLUE_66(), GLUE_67(), GLUE_68(), GLUE_69(), GLUE_7(), GLUE_70(), GLUE_71(), GLUE_72(), GLUE_73(), GLUE_74(), GLUE_75(), GLUE_76(), GLUE_77(), GLUE_78(), GLUE_79(), GLUE_8(), GLUE_80(), GLUE_81(), GLUE_82(), GLUE_83(), GLUE_84(), GLUE_85(), GLUE_86(), GLUE_87(), GLUE_88(), GLUE_89(), GLUE_9(), GLUE_90(), GLUE_91(), GLUE_92(), GLUE_93(), GLUE_94(), GLUE_95(), GLUE_96(), GLUE_97(), GLUE_98(), and GLUE_99().

matrix<C,V> ARITH_SCALAR_INT_SUGAR(template< typename C, typename V >, matrix< C, V >)
C
Examples:
base_test.cpp, crt_test.cpp, fast_series_test.cpp, fft_test.cpp, fft_triadic_test.cpp, fkt_test.cpp, matrix_test.cpp, polynomial_int_test.cpp, polynomial_integer_test.cpp, polynomial_modular_test.cpp, polynomial_polynomial_test.cpp, polynomial_test.cpp, series_test.cpp, tft_test.cpp, and vector_simd_test.cpp.

Definition at line 106 of file series.hpp.

Referenced by implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::_half_gcd(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::_multi_rem(), implementation< polynomial_evaluate, V, polynomial_naive >::annulator(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::annulator(), as_p_expansion(), binary_helper< matrix< C, V > >::assemble(), bareiss_triangulate(), big_add(), binary_map_scalar(), implementation< matrix_vectorial, V, matrix_naive >::clear_range(), implementation< matrix_linear, V, matrix_naive >::col_combine_sub(), implementation< matrix_echelon, V, matrix_ring_naive< W > >::col_echelon(), implementation< matrix_echelon, V, matrix_naive >::col_echelon(), implementation< matrix_linear, V, matrix_naive >::col_is_zero(), implementation< matrix_orthogonalization, V, matrix_naive >::col_orthogonalize(), implementation< matrix_orthogonalization, V, matrix_naive >::col_orthonormalize(), implementation< crt_transform, V, crt_dicho< W > >::combine(), combine_crt(), implementation< polynomial_compose, V, polynomial_naive >::compose(), compose(), fft_threads_transformer< C, FFTER, thr >::copy(), moduli_signed_integer_helper< short int, M, W >::covering(), moduli_unsigned_integer_helper< unsigned int, M, W >::covering(), crt_naive_transformer< C, S, V >::crt_naive_transformer(), as_helper< polynomial< modular< modulus< C, U1 >, U2 >, V >, Lift_type(modular< modulus< C, U1 >, U2 >)>::cv(), fast_helper< series< C, V > >::dd(), decode_kronecker(), decode_modular_int(), ser_separable_root_op::def(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_ducos_inc< BV > >::defected_prem(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_naive_inc< W > >::defected_prem(), DEFINE_VARIANT(), root_modular_naive::degree_one_factorization(), fft_blocks_transformer< C, FFTER, log2_outer_block_size, log2_block_number, log2_inner_block_size, threshold >::delocate(), derive(), implementation< matrix_determinant, V, matrix_ring_naive< W > >::det(), implementation< matrix_determinant, V, matrix_naive >::det(), fft_naive_transformer< C, V >::dfft(), fft_blocks_transformer< C, FFTER, log2_outer_block_size, log2_block_number, log2_inner_block_size, threshold >::dfft(), dilate(), implementation< base_transform, V, base_signed< W > >::direct(), implementation< base_transform, V, base_naive >::direct(), implementation< base_transform, V, base_dicho< W > >::direct(), fkt_package< V >::direct_fkt(), implementation< series_multiply, U, series_fast >::nrelax_mul_series_rep< C, V >::direct_transform(), crt_naive_transformer< C, S, V >::direct_transform(), crt_dicho_transformer< C, S, V >::direct_transform(), implementation< polynomial_exact_divide, V, polynomial_polynomial< W > >::div(), implementation< polynomial_exact_divide, V, polynomial_naive >::div(), encode_kronecker(), implementation< polynomial_euclidean, V, polynomial_naive >::euclidean_sequence(), implementation< polynomial_evaluate, V, polynomial_naive >::evaluate(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::evaluate(), fft_threads_transformer< C, FFTER, thr >::outer_fft_task_rep::execute(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::expand(), expand(), coprime_moduli_sequence_polynomial::extend(), fft_prime_sequence_int< s >::extend(), extract_mod(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::factorials(), fft_threads_transformer< C, FFTER, thr >::fft(), flatten(), series_carry_monoblock_transformer< M, W, s, BV >::from_monoblock(), binary_polynomial_helper< C, V >::full_type_name(), binary_helper< matrix< C, V > >::full_type_name(), binary_helper< algebraic_number_extension< C, Ball > >::full_type_name(), binary_helper< algebraic_extension< C > >::full_type_name(), binary_helper< algebraic< C, Extension > >::full_type_name(), implementation< polynomial_gcd, V, polynomial_ring_naive< W > >::gcd(), implementation< polynomial_gcd, V, polynomial_naive >::gcd(), implementation< polynomial_euclidean, V, polynomial_naive >::gcd(), implementation< polynomial_euclidean, V, polynomial_dicho< BV > >::gcd(), gcd(), get_matrix_format(), get_vector_format(), implementation< polynomial_graeffe, V, polynomial_unrolled< W, m > >::graeffe(), implementation< polynomial_graeffe, V, polynomial_naive >::graeffe(), graeffe(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::half_subresultant(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::half_subresultant_rec(), fft_naive_transformer< C, V >::ifft(), fft_blocks_transformer< C, FFTER, log2_outer_block_size, log2_block_number, log2_inner_block_size, threshold >::ifft(), implementation< matrix_image, V, matrix_naive >::image(), implementation< series_compose, U, series_naive >::reverse_series_rep< C, V >::initialize(), implementation< series_divide, U, series_carry_naive >::div_series_rep< M, V >::initialize(), implementation< series_divide, U, series_carry_naive >::rdiv_sc_series_rep< M, V, X >::initialize(), integrate(), implementation< polynomial_evaluate, V, polynomial_naive >::interpolate(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::interpolate(), implementation< crt_transform, V, crt_dicho< W > >::inverse(), implementation< base_transform, V, base_dicho< W > >::inverse(), inverse_base(), inverse_crt(), fkt_package< V >::inverse_fkt(), fkt_package< V >::inverse_fkt_step(), fft_triadic_threads_transformer< C, FFTER, thr >::inverse_transform_triadic(), implementation< matrix_invert, V, matrix_naive >::invert(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::invert_hi(), invert_hi(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::invert_lo(), invert_lo(), implementation< matrix_invert, V, matrix_naive >::invert_lower_triangular(), implementation< polynomial_gcd, X, polynomial_series< BV > >::invert_mod(), implementation< polynomial_gcd, V, polynomial_ring_naive< W > >::invert_mod(), implementation< polynomial_gcd, V, polynomial_naive >::invert_mod(), join(), implementation< matrix_kernel, V, matrix_naive >::kernel(), root_modular_naive::linear_splitting(), lshiftz(), implementation< matrix_multiply_base, V, matrix_strassen< W > >::mat_load(), implementation< matrix_multiply_base, V, matrix_strassen< W > >::mat_save(), matrix< series< C, V >, U >::matrix(), matrix_mul_quo(), matrix_new(), implementation< polynomial_multiply, V, polynomial_balanced_tft< W > >::mul(), implementation< polynomial_multiply, V, polynomial_tft_inc< W, Th > >::mul(), implementation< polynomial_multiply, V, polynomial_tangent< CV > >::mul(), implementation< polynomial_multiply, V, polynomial_schonhage_triadic_inc< W, Th > >::mul(), implementation< polynomial_multiply, V, polynomial_schonhage_inc< W, Th, Th_rec > >::mul(), implementation< polynomial_multiply, V, polynomial_quotient< W > >::mul(), implementation< polynomial_multiply, V, polynomial_modular< W > >::mul(), implementation< polynomial_multiply, V, polynomial_kronecker< W > >::mul(), implementation< polynomial_multiply, V, polynomial_complex< CV > >::mul(), implementation< polynomial_multiply, V, polynomial_balanced< W > >::mul(), modulus_multiplier_int_preinverse_helper< size >::multiplier_helper< C, void, m >::mul(), modulus_multiplier_int_preinverse_helper< size >::multiplier_helper< C, D, m >::mul(), implementation< matrix_multiply, V, matrix_quotient< W > >::mul(), implementation< matrix_multiply, V, matrix_crt< W > >::mul(), implementation< matrix_multiply, V, matrix_complex< CV > >::mul(), implementation< matrix_multiply, V, matrix_balanced< W > >::mul(), mul_kronecker(), implementation< polynomial_multiply, V, polynomial_schonhage_triadic_inc< W, Th > >::mul_triadic(), implementation< polynomial_evaluate, V, polynomial_naive >::multi_mod(), implementation< polynomial_evaluate, V, polynomial_naive >::multi_rem(), implementation< polynomial_multiply, V, polynomial_karatsuba< W > >::multiply(), carry_special_add_series_rep< C, V >::next(), carry_add_quorem_series_rep< C, V >::next(), carry_mul_quorem_series_rep< C, V, X >::next(), vector_access_series_rep< C, V, W >::next(), implementation< series_multiply, U, series_relaxed< W > >::mul_series_rep< C, V >::next(), implementation< series_multiply, U, series_naive >::truncate_mul_series_rep< C, V >::next(), implementation< series_multiply, U, series_naive >::mul_series_rep< C, V >::next(), implementation< series_map_as_abstractions, U, series_naive >::unary_map_as_series_rep< Op, C, V, S, SV >::next(), lshiftz_series_matrix_rep< C, V, U >::next(), matrix_series_rep< C, V, U >::next(), solver_series_rep< C, V >::next(), unknown_series_rep< C, V >::next(), implementation< series_multiply, U, series_fast >::nrelax_mul_series_rep< C, V >::next(), implementation< series_multiply, U, series_carry_relaxed< W > >::mul_series_rep< M, V >::next(), q_difference_series_rep< C, V >::next(), shift_series_rep< C, V >::next(), iterator_series_rep< C, V >::next(), implementation< series_multiply, U, series_carry_modular_int_naive< W > >::mul_series_rep< M, V >::next(), REP_STRUCT< Series, Monomial >::normalize(), nth_roots(), nullary_recursive_series(), polynomial_quo_rem_helper< V, C >::op(), primitive_root_helper< C >::op(), operator*(), operator+(), operator-(), operator/(), implementation< polynomial_gcd, V, polynomial_ring_naive< W > >::pade(), implementation< polynomial_gcd, V, polynomial_naive >::pade(), implementation< polynomial_euclidean, V, polynomial_naive >::pade(), implementation< polynomial_euclidean, V, polynomial_dicho< BV > >::pade(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::pinvert_hi(), polynomial< series< C, V >, U >::polynomial(), pquo(), implementation< polynomial_divide, V, polynomial_ring_dicho_inc< W > >::pquo_rem(), implementation< polynomial_divide, V, polynomial_naive >::pquo_rem(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::pquo_rem(), prem(), primitive_part(), implementation< matrix_iterate, V, matrix_naive >::project_iterate_mul(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::q_binomial(), q_difference(), quo(), implementation< polynomial_divide, V, polynomial_ring_dicho_inc< W > >::quo_rem(), implementation< polynomial_divide, V, polynomial_naive >::quo_rem(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::quo_rem(), range(), implementation< matrix_image, V, matrix_ring_naive< W > >::rank(), implementation< matrix_image, V, matrix_naive >::rank(), binary_helper< polynomial< C, V > >::read(), binary_helper< matrix< C, V > >::read(), reduce(), fft_blocks_transformer< C, FFTER, log2_outer_block_size, log2_block_number, log2_inner_block_size, threshold >::relocate(), rem(), REP_STRUCT_1(), resultant(), reverse(), root_modular_naive::roots(), implementation< matrix_linear, V, matrix_naive >::row_combine_sub(), implementation< matrix_linear, V, matrix_naive >::row_is_zero(), implementation< matrix_orthogonalization, V, matrix_naive >::row_orthogonalize(), implementation< matrix_orthogonalization, V, matrix_naive >::row_orthonormalize(), implementation< series_separable_root, U, series_naive >::sep_root(), separable_roots(), modulus_multiplier_int_preinverse_helper< size >::multiplier_helper< C, void, m >::set(), implementation< series_multiply, U, series_fast >::nrelax_mul_series_rep< C, V >::Set_order(), implementation< matrix_vectorial, V, matrix_naive >::set_range(), crt_dicho_transformer< C, S, V >::setup_inverse(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::shift(), shift(), binary_polynomial_helper< C, V >::short_type_name(), binary_helper< matrix< C, V > >::short_type_name(), binary_helper< algebraic_number_extension< C, Ball > >::short_type_name(), binary_helper< algebraic_extension< C > >::short_type_name(), binary_helper< algebraic< C, Extension > >::short_type_name(), matrix_crt_multiply_helper< C >::size(), skew_div(), solve_lde(), implementation< polynomial_multiply, V, polynomial_tft_inc< W, Th > >::square(), implementation< polynomial_multiply, V, polynomial_tangent< CV > >::square(), implementation< polynomial_multiply, V, polynomial_quotient< W > >::square(), implementation< polynomial_multiply, V, polynomial_modular< W > >::square(), implementation< polynomial_multiply, V, polynomial_kronecker< W > >::square(), implementation< polynomial_multiply, V, polynomial_karatsuba< W > >::square(), implementation< polynomial_multiply, V, polynomial_complex< CV > >::square(), square(), square_kronecker(), implementation< polynomial_subresultant_base, V, polynomial_ring_naive< W > >::subresultant(), subresultant(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_dicho_inc< BV > >::subresultant_compose(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_ducos_inc< BV > >::subresultant_sequence(), implementation< polynomial_subresultant_base, V, polynomial_gcd_ring_naive_inc< W > >::subresultant_sequence(), implementation< polynomial_subresultant_base, V, polynomial_ring_naive< W > >::subresultant_sequence(), implementation< polynomial_subresultant_base, V, polynomial_naive >::subresultant_sequence(), subresultants(), substitute(), implementation< polynomial_evaluate, V, polynomial_naive >::tevaluate(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::tevaluate(), tevaluate_bis(), implementation< polynomial_evaluate, V, polynomial_naive >::tinterpolate(), implementation< polynomial_evaluate, V, polynomial_dicho< BV > >::tinterpolate(), tmul(), implementation< polynomial_multiply, V, polynomial_karatsuba< W > >::tmultiply(), tquo(), implementation< polynomial_divide, V, polynomial_ring_dicho_inc< W > >::tquo_rem(), implementation< polynomial_divide, V, polynomial_naive >::tquo_rem(), implementation< polynomial_divide, V, polynomial_dicho< BV > >::tquo_rem(), trem(), truncate(), unary_map(), unknown_series_rep< C, V >::unknown_series_rep(), implementation< series_pth_root, U, series_carry_p_adic< W > >::unsep_root(), fast_helper< polynomial< C, V > >::uu(), fast_helper< matrix< C, V > >::uu(), implementation< vector_abstractions, Z, vector_aligned< V, W > >::vec_unary_big(), and xderive().

series<C,V> COMPARE_INT_SUGAR(template< typename C, typename V >, series< C, V >)template< typename C
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> COMPARE_SUGAR(template< typename C, typename V >, polynomial< C, V >) EQUAL_SCALAR_SUGAR(template< typename C
series<C,V> INV_HYPER_SUGAR(template< typename C, typename V >, series< C, V >) ARG_HYPER_SUGAR(template< typename C

Definition at line 87 of file quotient_series.hpp.

Referenced by operator+(), operator-(), operator/(), and operator==().

Definition at line 390 of file polynomial.hpp.

quotient< NT, DT >

Definition at line 88 of file quotient.hpp.

Definition at line 87 of file quotient_series.hpp.

Definition at line 88 of file quotient.hpp.

series< C, V >
Examples:
fast_series_test.cpp.

Definition at line 106 of file series.hpp.

nat str

Definition at line 53 of file matrix_quotient.hpp.

 All Classes Namespaces Files Functions Variables Typedefs Friends Defines