Class ElementaryIntegration<C extends GcdRingElem<C>>

java.lang.Object
edu.jas.integrate.ElementaryIntegration<C>
Type Parameters:
C - coefficient type
Direct Known Subclasses:
ElementaryIntegrationBernoulli, ElementaryIntegrationCzichowski, ElementaryIntegrationLazard

public class ElementaryIntegration<C extends GcdRingElem<C>> extends Object
Methods related to elementary integration. In particular there are methods for Hermite reduction and Rothstein-Trager integration of the logarithmic part.
  • Field Details

    • logger

      private static final org.apache.logging.log4j.Logger logger
    • debug

      private static final boolean debug
    • irr

      public final FactorAbstract<C extends GcdRingElem<C>> irr
      Engine for factorization.
    • sqf

      public final SquarefreeAbstract<C extends GcdRingElem<C>> sqf
      Engine for squarefree decomposition.
    • ufd

      public final GreatestCommonDivisorAbstract<C extends GcdRingElem<C>> ufd
      Engine for greatest common divisors.
    • irredLogPart

      public boolean irredLogPart
      Flag for irreducible input to integrateLogPart.
  • Constructor Details

    • ElementaryIntegration

      public ElementaryIntegration(RingFactory<C> br)
      Constructor.
  • Method Details

    • integrate

      public QuotIntegral<C> integrate(Quotient<C> r)
      Integration of a rational function.
      Parameters:
      r - rational function
      Returns:
      Integral container, such that integrate(r) = sum_i(g_i) + sum_j( an_j log(hd_j) )
    • integrate

      public Integral<C> integrate(GenPolynomial<C> a, GenPolynomial<C> d)
      Integration of a rational function.
      Parameters:
      a - numerator
      d - denominator
      Returns:
      Integral container, such that integrate(a/d) = sum_i(gn_i/gd_i) + integrate(h0) + sum_j( an_j log(hd_j) )
    • integrateHermite

      public List<GenPolynomial<C>>[] integrateHermite(GenPolynomial<C> a, GenPolynomial<C> d)
      Integration of the rational part, Hermite reduction step.
      Parameters:
      a - numerator
      d - denominator, gcd(a,d) == 1
      Returns:
      [ [ gn_i, gd_i ], [ h0, hn_j, hd_j ] ] such that integrate(a/d) = sum_i(gn_i/gd_i) + integrate(h0) + sum_j( integrate(hn_j/hd_j) )
    • integrateLogPartPrepare

      public LogIntegral<C> integrateLogPartPrepare(GenPolynomial<C> A, GenPolynomial<C> P)
      Univariate GenPolynomial integration of the logarithmic part, eventual preparation for irreducible factorization of P.
      Parameters:
      A - univariate GenPolynomial, deg(A) < deg(P).
      P - univariate squarefree GenPolynomial, gcd(A,P) == 1.
      Returns:
      logarithmic part container.
    • integrateLogPart

      public LogIntegral<C> integrateLogPart(GenPolynomial<C> A, GenPolynomial<C> P)
      Univariate GenPolynomial integration of the logarithmic part, Rothstein-Trager algorithm.
      Parameters:
      A - univariate GenPolynomial, deg(A) < deg(P).
      P - univariate squarefree or irreducible GenPolynomial. // gcd(A,P) == 1 automatic
      Returns:
      logarithmic part container.
    • derivative

      @Deprecated public Quotient<C> derivative(Quotient<C> r)
      Deprecated.
      (forRemoval=true) use PolyUfdUtil.derivative()
      Derivation of a univariate rational function.
      Parameters:
      r - rational function
      Returns:
      dr/dx
    • isIntegral

      public boolean isIntegral(QuotIntegral<C> ri)
      Test of integration of a rational function.
      Parameters:
      ri - integral
      Returns:
      true, if ri is an integral, else false.
    • isIntegral

      public boolean isIntegral(LogIntegral<C> rl)
      Test of integration of the logarithmic part of a rational function.
      Parameters:
      rl - logarithmic part of an integral
      Returns:
      true, if rl is an integral, else false.