Ratrecon - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Mozilla Firefox.

Online Help

All Products    Maple    MapleSim


Ratrecon

inert rational function reconstruction

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

Ratrecon(u, m, x, N, D) mod p

Ratrecon(u, m, x, N, D, 'n', 'd') mod p

Parameters

u, m

-

polynomials in x

x

-

name

N, D

-

(optional) non-negative integers

n, d

-

(optional) variables

p

-

integer > 1

Description

• 

This routine reconstructs a rational function nd from its image umodm where u and m are polynomials in Fx, and F is a field of characteristic p.

• 

Given umodm and non-negative integers N and D, if the call Ratrecon(u,m,x,N,D) mod p succeeds then the output is a rational function n/d in x such that

nd==u⁢mod⁢m,gcd⁡n,d=1,degree⁡n,x≤N⁢and degree⁡d,x≤D.

  

Otherwise Ratrecon returns FAIL indicating that no such polynomials n and d exist.  The reconstruction is unique up to multiplication by a constant in F if the following condition holds.

  

N + D < degree(m,x)

• 

If the optional parameters N and D are not specified then they are determined by the degree of m. They are assigned the largest possible values satisfying the above constraint such that N=D or N-D=1.

• 

If the optional parameters n and d are specified then Ratrecon returns either true or false.  If rational reconstruction succeeds then true is returned and these parameters are assigned the numerator and denominator separately, otherwise false is returned and these parameters are not changed.

• 

The special case of m=xk corresponds to computing the (N, D) Pade approximate to the series u of order O⁡xk .

• 

If the first input u is a polynomial in variables other than x then Ratrecon is applied to the coefficients of the polynomial in those variables.  See the last example in the Examples section.

• 

For the special case of N=0, the polynomial dn is the inverse of u in Fxm provided u and m are relatively prime.

Examples

> 

u≔3+5⁢x+7⁢x2+11⁢x3+13⁢x4

u≔13⁢x4+11⁢x3+7⁢x2+5⁢x+3

(1)
> 

m≔x5

m≔x5

(2)
> 

p≔97

p≔97

(3)
> 

r≔Ratrecon⁡u&comma;m&comma;xmodp

r≔19⁢x2+56⁢x+77x2+19⁢x+58

(4)
> 

Ratrecon⁡u&comma;m&comma;x&comma;2&comma;2modp

19⁢x2+56⁢x+77x2+19⁢x+58

(5)
> 

Ratrecon⁡u&comma;m&comma;x&comma;1&comma;3modp

27⁢x+52x3+43⁢x2+34⁢x+82

(6)
> 

Ratrecon⁡u&comma;m&comma;x&comma;1&comma;1modp

FAIL

(7)
> 

Ratrecon⁡u&comma;m&comma;x&comma;2&comma;2&comma;n&comma;dmodp

true

(8)
> 

n,d

19⁢x2+56⁢x+77,x2+19⁢x+58

(9)
> 

alias⁡α=RootOf⁡x2+5

α

(10)
> 

u≔5+7⁢α+11+13⁢α⁢x+17+19⁢α⁢x2

u≔5+7⁢α+11+13⁢α⁢x+17+19⁢α⁢x2

(11)
> 

r≔Ratrecon⁡u&comma;x3&comma;xmod97

r≔2⁢x⁢α+3⁢α+71⁢x+46x+10⁢α+21

(12)
> 

evala⁡series⁡r&comma;x&comma;3mod97

5+7⁢α+11+13⁢α⁢x+17+19⁢α⁢x2+O⁡x3

(13)
> 

`mod`≔mods&colon;

> 

u≔x3+6⁢t3−3⁢t−5⁢x2+4⁢t3+6⁢t2+5⁢t−4⁢x+t−1

u≔x3+6⁢t3−3⁢t−5⁢x2+4⁢t3+6⁢t2+5⁢t−4⁢x+t−1

(14)
> 

m≔t−2⁢t−3⁢t−4⁢t−5

m≔t−2⁢t−3⁢t−4⁢t−5

(15)
> 

p≔13

p≔13

(16)
> 

Ratrecon⁡u&comma;m&comma;t&comma;1&comma;2modp

t−1+x3−t⁢x2t−1+2⁢t⁢xt2−1

(17)

See Also

convert[ratpoly]

iratrecon

mod

ratrecon