# LinearOrdinaryDifferentialOperatorFactorizer2(var, cen)ΒΆ

LinearOrdinaryDifferentialOperatorFactorizer2 provides a factorizer for linear ordinary differential operators whose coefficients are rational functions.

factor: (LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(var, Expression Integer), (SparseUnivariatePolynomial Expression Integer, List Expression Integer) -> Factored SparseUnivariatePolynomial Expression Integer, List Expression Integer) -> List LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(var, Expression Integer)

to be documented later.

ge_minimal: (LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(var, Expression Integer), SparseUnivariatePolynomial Expression Integer -> Factored SparseUnivariatePolynomial Expression Integer, String) -> List Record(singularity: Record(point: Union(Expression Integer, infinity), lpf: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), dxt: PositiveInteger), fos: List Record(op: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), ram: UnivariatePolynomial(var, Expression Integer), expart: UnivariateLaurentSeries(Expression Integer, var, cen)), mge: List UnivariateLaurentSeries(Expression Integer, var, cen))

to be documented later.

gen_exp: (LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(var, Expression Integer), Union(Expression Integer, infinity), (SparseUnivariatePolynomial Expression Integer, List Expression Integer) -> Factored SparseUnivariatePolynomial Expression Integer, List Expression Integer) -> List Record(ecs: List UnivariateLaurentSeries(Expression Integer, var, cen), ecr: UnivariatePolynomial(var, Expression Integer), ect: Fraction UnivariatePolynomial(var, Expression Integer))

to be documented later.

testco: (LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), Fraction Integer, Integer) -> Boolean

test function.

testcp: (LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), Fraction Integer, Integer) -> LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen))

test function.

testcx: (LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), Fraction Integer) -> UnivariatePolynomial(var, Expression Integer)

test function.

testf2: (LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), UnivariatePolynomial(var, Expression Integer), Fraction Integer) -> Record(Qt: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), Rt: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)))

test function.

testfg: (LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(var, Expression Integer), SparseUnivariatePolynomial Expression Integer -> Factored SparseUnivariatePolynomial Expression Integer) -> List LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(var, Expression Integer)

test function.

testfn: (LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), SparseUnivariatePolynomial Expression Integer -> Factored SparseUnivariatePolynomial Expression Integer, String) -> List LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen))

test function.

testfo: (LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), SparseUnivariatePolynomial Expression Integer -> Factored SparseUnivariatePolynomial Expression Integer, String) -> Union(List Record(op: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), ram: UnivariatePolynomial(var, Expression Integer), expart: UnivariateLaurentSeries(Expression Integer, var, cen)), List Union(LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), Record(ope: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), dext: PositiveInteger, alpha: Expression Integer, rami: UnivariatePolynomial(var, Expression Integer))))

test function.

testfr: (LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), SparseUnivariatePolynomial Expression Integer -> Factored SparseUnivariatePolynomial Expression Integer, String) -> Union(List Record(op: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), ram: UnivariatePolynomial(var, Expression Integer), expart: UnivariateLaurentSeries(Expression Integer, var, cen)), List Union(LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), Record(ope: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), dext: PositiveInteger, alpha: Expression Integer, rami: UnivariatePolynomial(var, Expression Integer))))

test function.

testgt: (Expression Integer, Kernel Expression Integer) -> Expression Integer

test function.

testis: LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(var, Expression Integer) -> Boolean

test function.

testlc: (Fraction Integer, LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), UnivariatePolynomial(var, Expression Integer), UnivariatePolynomial(var, Expression Integer), Fraction Integer, Integer) -> Record(llc: List Stream Record(k: Integer, c: Expression Integer), rlc: List Stream Record(k: Integer, c: Expression Integer))

test function.

testll: (Fraction Integer, LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), UnivariatePolynomial(var, Expression Integer), UnivariatePolynomial(var, Expression Integer), Fraction Integer, Integer) -> Record(laurl: List UnivariateLaurentSeries(Expression Integer, var, cen), laurr: List UnivariateLaurentSeries(Expression Integer, var, cen))

test function.

testln: (Fraction Integer, LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), UnivariatePolynomial(var, Expression Integer), UnivariatePolynomial(var, Expression Integer), Fraction Integer, Integer) -> Record(main: Record(Qt: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), Rt: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen))), nf: Record(Qt: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), Rt: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen))), error: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)))

test function.

testlp: (LinearOrdinaryDifferentialOperator1 Fraction UnivariatePolynomial(var, Expression Integer), Union(Expression Integer, infinity)) -> LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen))

test function.

testlw: (Fraction Integer, LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), UnivariatePolynomial(var, Expression Integer), UnivariatePolynomial(var, Expression Integer), Fraction Integer, Integer) -> Stream Record(Qt: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)), Rt: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen)))

test function.

testnp: LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)) -> List Record(point: Record(x: Integer, y: Integer), slope: Fraction Integer, npoly: UnivariatePolynomial(var, Expression Integer))

test function.

testpd: UnivariatePolynomial(var, Expression Integer) -> LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen))

test function.

testro: (LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), Expression Integer, PositiveInteger) -> LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen))

test function.

testsb: (Union(UnivariatePolynomial(var, Expression Integer), UnivariateLaurentSeries(Expression Integer, var, cen)), LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer))) -> LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariateTaylorSeries(Expression Integer, var, cen), UnivariateLaurentSeries(Expression Integer, var, cen))

test function.

testsc: (LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), LinearOrdinaryDifferentialOperator3(Expression Integer, UnivariatePolynomial(var, Expression Integer), Fraction UnivariatePolynomial(var, Expression Integer)), SparseUnivariatePolynomial Expression Integer -> Factored SparseUnivariatePolynomial Expression Integer) -> Boolean

test function.