edu.jas.integrate
Class ElementaryIntegration<C extends GcdRingElem<C>>

java.lang.Object
  extended by edu.jas.integrate.ElementaryIntegration<C>
Type Parameters:
C - coefficient type

public class ElementaryIntegration<C extends GcdRingElem<C>>
extends java.lang.Object

Methods related to elementary integration. In particular there are methods for Hermite reduction and Rothstein-Trager integration of the logarithmic part.

Author:
Axel Kramer, Heinz Kredel

Field Summary
 FactorAbstract<C> irr
          Engine for factorization.
 SquarefreeAbstract<C> sqf
          Engine for squarefree decomposition.
 GreatestCommonDivisorAbstract<C> ufd
          Engine for greatest common divisors.
 
Constructor Summary
ElementaryIntegration(RingFactory<C> br)
          Constructor.
 
Method Summary
 Quotient<C> deriviative(Quotient<C> r)
          Derivation of a univariate rational function.
 Integral<C> integrate(GenPolynomial<C> a, GenPolynomial<C> d)
          Integration of a rational function.
 QuotIntegral<C> integrate(Quotient<C> r)
          Integration of a rational function.
 java.util.List<GenPolynomial<C>>[] integrateHermite(GenPolynomial<C> a, GenPolynomial<C> d)
          Integration of the rational part, Hermite reduction step.
 LogIntegral<C> integrateLogPart(GenPolynomial<C> A, GenPolynomial<C> P)
          Univariate GenPolynomial integration of the logaritmic part, Rothstein-Trager algorithm.
 LogIntegral<C> integrateLogPartIrreducible(GenPolynomial<C> A, GenPolynomial<C> P)
          Univariate GenPolynomial integration of the logaritmic part, Rothstein-Trager algorithm.
 boolean isIntegral(LogIntegral<C> rl)
          Test of integration of the logarithmic part of a rational function.
 boolean isIntegral(QuotIntegral<C> ri)
          Test of integration of a rational function.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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.

Constructor Detail

ElementaryIntegration

public ElementaryIntegration(RingFactory<C> br)
Constructor.

Method Detail

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 java.util.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) )

integrateLogPart

public LogIntegral<C> integrateLogPart(GenPolynomial<C> A,
                                       GenPolynomial<C> P)
Univariate GenPolynomial integration of the logaritmic part, Rothstein-Trager algorithm.

Parameters:
A - univariate GenPolynomial, deg(A) < deg(P).
P - univariate squarefree GenPolynomial, gcd(A,P) == 1.
Returns:
logarithmic part container.

integrateLogPartIrreducible

public LogIntegral<C> integrateLogPartIrreducible(GenPolynomial<C> A,
                                                  GenPolynomial<C> P)
Univariate GenPolynomial integration of the logaritmic part, Rothstein-Trager algorithm.

Parameters:
A - univariate GenPolynomial, deg(A) < deg(P).
P - univariate irreducible GenPolynomial. // gcd(A,P) == 1 automatic
Returns:
logarithmic part container.

deriviative

public Quotient<C> deriviative(Quotient<C> r)
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.