integrate_rational

Function integrate_rational 

Source
pub fn integrate_rational(
    numerator: &Expression,
    denominator: &Expression,
    var: &Symbol,
) -> RationalIntegral
Expand description

Integrate a rational function P(x)/Q(x)

Implements Hermite reduction algorithm for complete rational function integration.

§Arguments

  • numerator - Polynomial P(x)
  • denominator - Polynomial Q(x) (must be non-zero)
  • var - Variable of integration

§Algorithm

  1. If deg(P) ≥ deg(Q): Perform polynomial long division
    • P/Q = quotient + remainder/Q
    • Integrate quotient using power rule
  2. Apply Hermite reduction to remainder/Q:
    • Compute D = gcd(Q, Q’) where Q’ is derivative
    • Use extended GCD to extract logarithmic terms
    • Separate into algebraic + logarithmic parts
  3. Return complete integral

§Examples

use mathhook_core::calculus::integrals::risch::rational::integrate_rational;
use mathhook_core::{expr, symbol};

let x = symbol!(x);
let num = expr!((x^2) + 1);
let den = expr!(x - 1);
let result = integrate_rational(&num, &den, &x);

§Returns

Returns RationalIntegral containing:

  • polynomial_part: Result of integrating quotient
  • logarithmic_terms: List of (coefficient, argument) for ln terms
  • remaining: Any unintegrated rational part (None if complete)