/** * Risch Layer 3 — Hermite reduction + Rothstein–Trager / residue formula * for rational functions whose denominator has a degree-≥3 irreducible * factor or a repeated positive-discriminant quadratic. * * After Ostrogradsky–Hermite peels the rational part (any repeated factor), * the remaining square-free integrand is integrated by Rothstein–Trager * when every residue is rational, otherwise by the residue formula * (companion-matrix roots of the denominator, conjugate pairs folded into * real `log` + `atan2`). Correctness is verified by differentiation; the * string form is not contractual. */ import { type IntPoly } from '../typed/factorization/integer-poly.js'; /** Bareiss fraction-free determinant over ℤ. */ export declare function detZ(matrix: bigint[][]): bigint; /** Sylvester resultant of two integer polynomials. */ export declare function resultantZ(a: IntPoly, b: IntPoly): bigint; /** * Rothstein–Trager resultant `R(t) = Res_x(A − t B', B)`, recovered by * interpolating integer samples `R(k)` at `k = 0..N`. */ export declare function rothsteinResultant(A: IntPoly, B: IntPoly): IntPoly; /** * Ostrogradsky–Hermite: `R/Q = (P/Q1)' + S/Q2` with `Q1 = gcd(Q,Q')`, * `Q2 = Q/Q1` square-free. Returns the rational part `P/Q1` as a string * (or `'0'`) and the remaining square-free numerator `S`. */ export declare function hermiteReduce(R: IntPoly, Q: IntPoly, v: string): { rational: string; squareFreeNumer: IntPoly; squareFreeDenom: IntPoly; }; /** * Residue-formula antiderivative of a square-free proper `A/B`: * `Σ (A(r)/B'(r)) log(x − r)`, with conjugate pairs folded into a real * `log` + `atan2` pair so the result is evaluable over ℝ. */ export declare function residueIntegral(A: IntPoly, B: IntPoly, v: string): string; /** * Exact Rothstein–Trager when every residue is rational; otherwise the * residue formula. `A/B` must be proper and `B` square-free. */ export declare function rothsteinTrager(A: IntPoly, B: IntPoly, v: string): string; /** * Full Layer-3 pipeline for a proper remainder `R/Q` (already split off the * polynomial part). Hermite-reduces repeated factors, then integrates the * square-free remainder. */ export declare function integrateLayer3(R: IntPoly, Q: IntPoly, v: string): string; //# sourceMappingURL=layer3.d.ts.map