GiNaCRA  0.6.4
Runtime Complexity Bounds
Global GiNaC::denominator (long a, long b)
O( digits( min(a, b) ) ) + integer division
Global GiNaC::gcd (long a, long b)
O( digits( min(a, b) ) )
Global GiNaC::lcm (long a, long b)
the complexity of gcd(a, b)
Global GiNaC::lcm (const lst &l)
linearly (in the length of l) many calls of GiNaC::lcm
Global GiNaC::numerator (long a, long b)
O( digits( min(a, b) ) ) + one integer division
Global GiNaC::signedSubresultants (const ex &A, const ex &B, const symbol &sym)
O( deg(A)*deg(B) )
Global GiNaC::signedSubresultantsCoefficients (const ex &A, const ex &B, const symbol &sym)
O( deg(A)*deg(B) )
Global GiNaCRA::CAD::addPolynomial (const UnivariatePolynomial &p, const vector< GiNaC::symbol > &v, unsigned setting=DEFAULT_CADSETTING)
O( 2^(2^mVariables.size()) ) many polynomials could be generated during the initial elimination
Global GiNaCRA::CAD::addPolynomials (InputIterator first, InputIterator last, const vector< GiNaC::symbol > &v, unsigned setting=DEFAULT_CADSETTING)
O( 2^(2^variables.size()) ) many polynomials could be generated during the elimination
Global GiNaCRA::CAD::CAD (const UnivariatePolynomialSet &s, const vector< symbol > &v, CADSettings setting=CADSettings::getSettings())
O( 2^(2^v.size()) ) many polynomials could be generated during the initial elimination
Global GiNaCRA::CAD::elimination (const UnivariatePolynomial &p, const UnivariatePolynomial &q, const symbol &variable, UnivariatePolynomialSet &eliminated)
O( deg(P)^2 ) subresultant computations. The degree of the output is bound by O(max(deg(P),deg(Q))^2)!
Global GiNaCRA::CAD::elimination (const UnivariatePolynomial &p, const symbol &variable, UnivariatePolynomialSet &eliminated)
O ( deg(P) ) subresultant computations. The degree of the output is bound by O(deg(P)^2)!
Global GiNaCRA::CAD::eliminationSet (const UnivariatePolynomialSet &P, const symbol &nextVariable)
O( m^2 * d^2 ) where m is the size of P and d the maximum degree of the polynomials in P
Global GiNaCRA::CAD::samples (const RationalUnivariatePolynomial &p, SampleList &currentSamples, CADSettings settings=CADSettings::getSettings())
linear in the number of roots of p plus the complexity of RealAlgebraicNumberFactory::realRoots( p )
Global GiNaCRA::CAD::samples (const list< RealAlgebraicNumberPtr > &roots, SampleList &currentSamples)
linear in roots.size()
Global GiNaCRA::CAD::samples (const UnivariatePolynomial &p, const list< RealAlgebraicNumberPtr > &sample, const list< symbol > &variables, SampleList &currentSamples, CADSettings settings=CADSettings::getSettings())
linear in the number of roots of p plus the complexity of RealAlgebraicNumberFactory::realRoots( p )
Global GiNaCRA::CAD::samples (const list< RationalUnivariatePolynomial > &polynomials, SampleList &currentSamples)
linear in the number of common roots of polynomials plus the accumulated complexities of RealAlgebraicNumberFactory::realRoots calls.
Global GiNaCRA::CAD::truncation (const UnivariatePolynomial &P)
O ( deg(P) )
Global GiNaCRA::CAD::truncation (const UnivariatePolynomialSet &P)
O( |P| * max_deg(P) )
Global GiNaCRA::MultivariateMonomialMR::tdeg () const
constant
Global GiNaCRA::MultivariatePolynomialMR::nrOfTerms () const
constant
Global GiNaCRA::OpenInterval::sample () const
O( lcm( denominator( Left() ) * denominator( Right() ) )^2 )
Global GiNaCRA::RealAlgebraicNumber::approximateValue () const
constant
Global GiNaCRA::RealAlgebraicNumberIR::approximateValue () const
constant
Global GiNaCRA::RealAlgebraicNumberIR::refine (RealAlgebraicNumberSettings::RefinementStrategy strategy=RealAlgebraicNumberSettings::DEFAULT_REFINEMENTSTRATEGY)
constant
Global GiNaCRA::RealAlgebraicNumberIR::refineAvoiding (numeric n)
constant
Global GiNaCRA::RealAlgebraicNumberIR::sampleValue () const
constant
Global GiNaCRA::RealAlgebraicNumberNR::approximateValue () const
constant
Global GiNaCRA::SampleList::insert (InputIterator first, InputIterator last)
at most logarithmic in the size of the list
Global GiNaCRA::SampleList::insert (const RealAlgebraicNumberPtr &r)
at most logarithmic in the size of the list
Global GiNaCRA::SampleList::insert (const SampleList &l)
at most logarithmic in the size of this list and linear in the size of l
Global GiNaCRA::SampleList::pop ()
at most linear in the size of the list
Global GiNaCRA::SampleList::popNonroot ()
at most linear in the size of the list
Global GiNaCRA::SampleList::popNR ()
at most logarithmic in the size of the list and linear in the number of roots in the list
Global GiNaCRA::SampleList::popRoot ()
at most linear in the size of the list
Global GiNaCRA::SampleList::simplify ()
logarithmic in the number
Global GiNaCRA::SymbolDB::getSymbolList () const
linear
Global GiNaCRA::SymbolDB::getSymbolVector () const
linear
Global GiNaCRA::SymbolDB::operator[] (const symbol &v) const
O( log(n) ) where n is the number of variables
Global GiNaCRA::SymbolDB::SymbolDB (std::string stdname)
O( n*log(n) ) where n is the number of variables
Global GiNaCRA::UnivariatePolynomial::nonzeropart () const
linear in degree()
Global GiNaCRA::UnivariatePolynomial::subresultants (const UnivariatePolynomial &a, const UnivariatePolynomial &b, const subresultantStrategy strategy=GENERIC_SUBRESULTANTSTRATEGY)
O( deg(a)*deg(b) )