realroot_doc 0.1.1
euclidean Struct Reference

#include <subresultant.hpp>

List of all members.

Static Public Member Functions


Detailed Description

Definition at line 7 of file subresultant.hpp.


Member Function Documentation

static Polynomial pquo ( const Polynomial &  a,
const Polynomial &  b 
) [inline, static]

Definition at line 40 of file subresultant.hpp.

References Polynomial, and euclidean::pseudo_div().

  {
    Polynomial r=a, q;
    pseudo_div(q, r, b);
    return q;
  }
static Polynomial prem ( const Polynomial &  a,
const Polynomial &  b 
) [inline, static]

Definition at line 32 of file subresultant.hpp.

References Polynomial, and euclidean::pseudo_div().

  {
    Polynomial r=a,q;
    pseudo_div(q, r, b);
    return r;
  }
static void pseudo_div ( R &  q,
R &  a,
const R &  b 
) [inline, static]

Definition at line 11 of file subresultant.hpp.

References mmx::degree(), mmx::pow(), and mmx::shift().

Referenced by euclidean::pquo(), and euclidean::prem().

  {
    typedef typename R::iterator iterator;
    R t;//(degree(b)+1, AsSize());
    typename R::value_type lb=b[degree(b)];
    q=R(0);
    int c=0, da = degree(a), db = degree(b), dab =da-db+1;
    while (da>=db) {
      R m(a[da],da-db);
      shift(t,b,da-db); t*=a[da];   // t=b*m;
      c++;
      a*=lb;
      t[da]=a[da];
      a-=t;
      q+=m;
      da=degree(a);
    }
    a *= pow(lb, dab-c);
  }

The documentation for this struct was generated from the following file: