Beispiel #1
0
void program()
{
  GlobalManager CoCoAFoundations;

  SparsePolyRing P = NewPolyRing(RingQQ(), 2); // QQ[x,y];
  const RingElem& x = indet(P,0);
  const RingElem& y = indet(P,1);
  RingElem f = power(x,96) - power(y,96); // f = x^96-y^96

  const factorization<RingElem> FacInfo = factor(f);

  // These are convenient aliases for the 3 fields in the factorization:
  const RingElem&         content   = FacInfo.myRemainingFactor();
  const vector<RingElem>& IrredFacs = FacInfo.myFactors();
  const vector<long>&     mult      = FacInfo.myMultiplicities();

  cout << "The factors of " << f << " are:" << endl;
  if (!IsOne(content))
    cout << "content: " << content << endl;
  const int NumIrredFacs = len(IrredFacs);
  for (int i = 0; i != NumIrredFacs; ++i)
  {
    cout << IrredFacs[i] << "  with multiplicity  " << mult[i] << endl;
  }
}
Beispiel #2
0
ourFactorization::ourFactorization(const factorization<RingElem>& FF){

    ourFactorization(FF.myFactors(),FF.myMultiplicities(),FF.myRemainingFactor());

}