# Rational Function Fields

- [Introduction](introduction.md)

- [Creation Functions](creation.md)

  - [Creation of Structures](creation.md#creation-of-structures)

    - [`FunctionField(R): Rng → FldFunRat`](creation.md#function-functionfield-rng)

    - [`RationalFunctionField(R): Rng → FldFunRat`](creation.md#function-rationalfunctionfield-rng)

    - [`FunctionField(R, r): Rng, RngIntElt → FldFunRat`](creation.md#function-functionfield-rng-rngintelt)

    - [`RationalFunctionField(R, r): Rng, RngIntElt → FldFunRat`](creation.md#function-rationalfunctionfield-rng-rngintelt)

    - [`FieldOfFractions(P): RngUPol → FldFunRat`](creation.md#function-fieldoffractions-rngupol)

  - [Names](creation.md#names)

    - [`AssignNames(~F, s): FldFunRat, [ MonStgElt ])`](creation.md#function-assignnames-fldfunrat-monstgelt-ref)

    - [`Name(F, i): FldFunRat, RngIntElt → FldFunRatElt`](creation.md#function-name-fldfunrat-rngintelt)

  - [Creation of Elements](creation.md#creation-of-elements)

    - [`F ! [a, b]: FldFunRat, RngUPolElt, RngUPolElt → FldFunRatElt`](creation.md#operation-op-fldfunrat-rngupolelt-rngupolelt)

    - [`elt< F | a, b >: FldFunRat, RngUPolElt, RngUPolElt → FldFunRatElt`](creation.md#constructor-constructor-elt-fldfunrat-rngupolelt-rngupolelt-fldfunratelt)

    - [`F ! a: FldFunRat, FldElt → FldFunRatElt`](creation.md#operation-op-fldfunrat-fldelt)

    - [`K . i: FldFunRat, RngIntElt → FldFunRatElt`](creation.md#operation-operation-fldfunrat-rngintelt-fldfunratelt)

    - [`One(F): FldFunRat → FldFunRatElt`](creation.md#function-one-fldfunrat)

    - [`Identity(F): FldFunRat → FldFunRatElt`](creation.md#function-identity-fldfunrat)

    - [`Zero(F): FldFunRat → FldFunRatElt`](creation.md#function-zero-fldfunrat)

    - [`Representative(F): FldFunRat → FldFunRatElt`](creation.md#function-representative-fldfunrat)

    - [`Example: Function Field`](creation.md#example-ex-64b44d)

- [Structure Operations](operation.md)

  - [Related Structures](operation.md#related-structures)

    - [`IntegerRing(F): FldFunRat → RngPol`](operation.md#function-integerring-fldfunrat)

    - [`RingOfIntegers(F): FldFunRat → RngPol`](operation.md#function-ringofintegers-fldfunrat)

    - [`BaseRing(F): FldFunRat → Rng`](operation.md#function-basering-fldfunrat)

    - [`CoefficientRing(F): FldFunRat → Rng`](operation.md#function-coefficientring-fldfunrat)

    - [`Rank(F): FldFunRat → RngIntElt`](operation.md#function-rank-fldfunrat)

    - [`ValuationRing(F): FldFunRat → RngVal`](operation.md#function-valuationring-fldfunrat)

    - [`ValuationRing(F, f): FldFunRat, RngUPolElt → RngVal`](operation.md#function-valuationring-fldfunrat-rngupolelt)

    - [`Category(R): FldFunRat → Cat`](operation.md#function-category-fldfunrat)

    - [`Parent(R): FldFunRat → Pow`](operation.md#function-parent-fldfunrat)

    - [`PrimeRing(R): FldFunRat → Rng`](operation.md#function-primering-fldfunrat)

  - [Invariants](operation.md#invariants)

    - [`Characteristic(F): FldFunRat → FldFunRatElt`](operation.md#function-characteristic-fldfunrat)

  - [Ring Predicates and Booleans](operation.md#ring-predicates-and-booleans)

    - [`IsCommutative(F): FldFunRat → BoolElt`](operation.md#function-iscommutative-fldfunrat)

    - [`IsUnitary(F): FldFunRat → BoolElt`](operation.md#function-isunitary-fldfunrat)

    - [`IsFinite(F): FldFunRat → BoolElt`](operation.md#function-isfinite-fldfunrat)

    - [`IsOrdered(F): FldFunRat → BoolElt`](operation.md#function-isordered-fldfunrat)

    - [`IsField(F): FldFunRat → BoolElt`](operation.md#function-isfield-fldfunrat)

    - [`IsEuclideanDomain(F): FldFunRat → BoolElt`](operation.md#function-iseuclideandomain-fldfunrat)

    - [`IsPID(F): FldFunRat → BoolElt`](operation.md#function-ispid-fldfunrat)

    - [`IsUFD(F): FldFunRat → BoolElt`](operation.md#function-isufd-fldfunrat)

    - [`IsDivisionRing(F): FldFunRat → BoolElt`](operation.md#function-isdivisionring-fldfunrat)

    - [`IsEuclideanRing(F): FldFunRat → BoolElt`](operation.md#function-iseuclideanring-fldfunrat)

    - [`IsPrincipalIdealRing(F): FldFunRat → BoolElt`](operation.md#function-isprincipalidealring-fldfunrat)

    - [`IsDomain(F): FldFunRat → BoolElt`](operation.md#function-isdomain-fldfunrat)

    - [`F eq G: FldFunRat, Rng → BoolElt`](operation.md#operation-op-eq-fldfunrat-rng)

    - [`F ne G: FldFunRat, Rng → BoolElt`](operation.md#operation-op-ne-fldfunrat-rng)

  - [Homomorphisms](operation.md#homomorphisms)

    - [`hom< P -> S | f, y₁, ..., yₙ >: FldFunRat, Rng → Map`](operation.md#constructor-constructor-hom-fldfunrat-rng-map)

    - [`hom< P -> S | y₁, ..., yₙ >: FldFunRat, Rng → Map`](operation.md#constructor-constructor-hom-fldfunrat-rng-map-2)

    - [`Example: Homomorphism`](operation.md#example-ex-bca4bf)

- [Element Operations](element.md)

  - [Arithmetic](element.md#arithmetic)

    - [`+ a: FldFunRatElt → FldFunRatElt`](element.md#operation-operation-fldfunratelt-fldfunratelt)

    - [`- a: FldFunRatElt → FldFunRatElt`](element.md#operation-operation-fldfunratelt-fldfunratelt-2)

    - [`a + b: FldFunRatElt, FldFunRatElt → FldFunRatElt`](element.md#operation-op-plus-fldfunratelt-fldfunratelt)

    - [`a - b: FldFunRatElt, FldFunRatElt → FldFunRatElt`](element.md#operation-op-minus-fldfunratelt-fldfunratelt)

    - [`a * b: FldFunRatElt, FldFunRatElt → FldFunRatElt`](element.md#operation-op-times-fldfunratelt-fldfunratelt)

    - [`a / b: FldFunRatElt, FldFunRatElt → FldFunRatElt`](element.md#operation-op-div-fldfunratelt-fldfunratelt)

    - [`a ^ k: FldFunRatElt, RngIntElt → FldFunRatElt`](element.md#operation-op-pow-fldfunratelt-rngintelt)

  - [Equality and Membership](element.md#equality-and-membership)

    - [`a eq b: FldFunRatElt, FldFunRatElt → BoolElt`](element.md#operation-op-eq-fldfunratelt-fldfunratelt)

    - [`a ne b: FldFunRatElt, FldFunRatElt → BoolElt`](element.md#operation-op-ne-fldfunratelt-fldfunratelt)

    - [`a in F: FldFunRatElt, FldFunRat → BoolElt`](element.md#operation-op-in-fldfunratelt-fldfunrat)

    - [`a notin F: FldFunRatElt, FldFunRat → BoolElt`](element.md#operation-op-notin-fldfunratelt-fldfunrat)

  - [Numerator, Denominator and Degree](element.md#numerator-denominator-and-degree)

    - [`Numerator(f): FldFunRatElt → RngElt`](element.md#function-numerator-fldfunratelt)

    - [`Numerator(f): RngUPolElt → RngUPolElt`](element.md#function-numerator-rngupolelt)

    - [`Numerator(f): RngMPolElt → RngMPolElt`](element.md#function-numerator-rngmpolelt)

    - [`Denominator(f): FldFunRatElt → RngElt`](element.md#function-denominator-fldfunratelt)

    - [`Denominator(f): RngUPolElt → RngUPolElt`](element.md#function-denominator-rngupolelt)

    - [`Denominator(f): RngMPolElt → RngMPolElt`](element.md#function-denominator-rngmpolelt)

    - [`Degree(f): FldFunRatElt → RngIntElt`](element.md#function-degree-fldfunratelt)

    - [`TotalDegree(f): FldFunRatElt → RngIntElt`](element.md#function-totaldegree-fldfunratelt)

    - [`WeightedDegree(f): FldFunRatElt → RngIntElt`](element.md#function-weighteddegree-fldfunratelt)

    - [`Numerator(f, R): FldFunRatElt → RngElt`](element.md#function-numerator-fldfunratelt-2)

    - [`Denominator(f, R): FldFunRatElt → RngElt`](element.md#function-denominator-fldfunratelt-2)

  - [Predicates on Ring Elements](element.md#predicates-on-ring-elements)

    - [`IsZero(a): FldFunRatElt → BoolElt`](element.md#function-iszero-fldfunratelt)

    - [`IsOne(a): FldFunRatElt → BoolElt`](element.md#function-isone-fldfunratelt)

    - [`IsMinusOne(a): FldFunRatElt → BoolElt`](element.md#function-isminusone-fldfunratelt)

    - [`IsNilpotent(a): FldFunRatElt → BoolElt`](element.md#function-isnilpotent-fldfunratelt)

    - [`IsIdempotent(a): FldFunRatElt → BoolElt`](element.md#function-isidempotent-fldfunratelt)

    - [`IsUnit(a): FldFunRatElt → BoolElt`](element.md#function-isunit-fldfunratelt)

    - [`IsZeroDivisor(a): FldFunRatElt → BoolElt`](element.md#function-iszerodivisor-fldfunratelt)

    - [`IsRegular(a): FldFunRatElt → BoolElt`](element.md#function-isregular-fldfunratelt)

  - [Evaluation](element.md#evaluation)

    - [`Evaluate(f, r): FldFunRatUElt, RngElt → FldFunRatUElt`](element.md#function-evaluate-fldfunratuelt-rngelt)

    - [`Evaluate(f, v, r): FldFunRatMElt, RngIntElt, RngElt → FldFunRatMElt`](element.md#function-evaluate-fldfunratmelt-rngintelt-rngelt)

    - [`Evaluate(f, S): FldFunRatMElt, [RngElt] → RngElt`](element.md#function-evaluate-fldfunratmelt-rngelt)

  - [Decomposition](element.md#decomposition)

    - [`Decomposition(f): FldFunRatUElt → [[FldFunRatUElt]]`](element.md#function-decomposition-fldfunratuelt)

    - [`Example: Decomp Ex`](element.md#example-ex-221d21)

  - [Derivative](element.md#derivative)

    - [`Derivative(f): FldFunRatUElt → FldFunRatUElt`](element.md#function-derivative-fldfunratuelt)

    - [`Derivative(f, k): FldFunRatUElt, RngIntElt → FldFunRatUElt`](element.md#function-derivative-fldfunratuelt-rngintelt)

    - [`Derivative(f, v): FldFunRatMElt, RngIntElt → FldFunRatMElt`](element.md#function-derivative-fldfunratmelt-rngintelt)

    - [`Derivative(f, v, k): FldFunRatMElt, RngIntElt, RngIntElt → FldFunRatMElt`](element.md#function-derivative-fldfunratmelt-rngintelt-rngintelt)

  - [Partial Fraction Decomposition](element.md#partial-fraction-decomposition)

    - [`PartialFractionDecomposition(f): FldFunRatUElt → [ <RngUPolElt, RngIntElt, RngUPolElt> ]`](element.md#function-partialfractiondecomposition-fldfunratuelt)

    - [`SquarefreePartialFractionDecomposition(f): FldFunRatUElt → [ <RngUPolElt, RngIntElt, RngUPolElt> ]`](element.md#function-squarefreepartialfractiondecomposition-fldfunratuelt)

    - [`Example: Partial Fraction Decomposition`](element.md#example-ex-2ba727)

- [Padé-Hermite Approximants](padehermite.md)

  - [Introduction](padehermite.md#introduction)

  - [Ordering of Sequences](padehermite.md#ordering-of-sequences)

    - [`MaximumDegree(f): SeqEnum → RngIntElt`](padehermite.md#function-maximumdegree-seqenum)

    - [`Example: Degree Of Sequence`](padehermite.md#example-ex-ea74e8)

    - [`TypeOfSequence(f): SeqEnum → RngIntElt, RngIntElt`](padehermite.md#function-typeofsequence-seqenum)

    - [`Example: Type Of Sequence`](padehermite.md#example-ex-8d75ca)

    - [`MinimalVectorSequence(f,n): SeqEnum, RngIntElt → SeqEnum`](padehermite.md#function-minimalvectorsequence-seqenum-rngintelt)

    - [`Example: Minimal Vector Sequence`](padehermite.md#example-ex-67b928)

    - [`Example: The Next Example`](padehermite.md#example-ex-d1c2b6)

    - [`Example: Another Example`](padehermite.md#example-ex-328015)

    - [`Example: One More`](padehermite.md#example-ex-1d53c0)

  - [Approximants](padehermite.md#approximants)

    - [`PadeHermiteApproximant(f,d): SeqEnum, SeqEnum → ModTupRngElt, SeqEnum, RngIntElt`](padehermite.md#function-padhermapp)

    - [`Example: Pade Hermite Approximants`](padehermite.md#example-ex-05a6f0)

    - [`Example: Last Example`](padehermite.md#example-ex-e98d49)

    - [`Example`](padehermite.md#example-ex-ea09f6)

    - [`PadeHermiteApproximant(f,m): SeqEnum, RngIntElt → ModTupRngElt, SeqEnum`](padehermite.md#function-padehermiteapproximant-seqenum-rngintelt)

    - [`Example: Pade Hermite Approximants Vectors`](padehermite.md#example-ex-b5d830)

    - [`Example`](padehermite.md#example-ex-15b388)
