|
D.15.14.3 modrationalInterpolation
Procedure from library ffmodstd.lib (see ffmodstd_lib).
- Usage:
- modrationalInterpolation(D, E, vr[, D1, E1]); D list, E list, vr int, D1 list, E1 list
- Return:
- a list L where r/t (r:=L[1], t:=L[2]) is a univariate rational function such that
r(D[i])/t(D[i]) = E[i] (or equivalently r/t = g mod f, gcd(r,t)=gcd(f,t)=1 and
deg(r) + deg(t) < deg(f)
- Note:
- Optional parameters D1 and E1 can be provided to update the existing input, that is,
to D1+D and E1+E. The rational function r/t is returned as an element in k(var(vr)),
where k is a field. This procedure works only in characteristic zero. The elements
in the first list must be distinct.
Example:
| LIB "ffmodstd.lib";
ring rr=0,x,dp;
list D = 2,3,4,5,6,7,8,9,10;
list E = 8/35, 7/123, 22/1027, 4/391, 44/7779, 29/8405, 74/32771, 23/14763, 112/100003;
modrationalInterpolation(D, E, 1);
==> [1]:
==> x2+x+2
==> [2]:
==> x5+3
ring R = 0, x, dp;
list D1 = 2,3,4,5,6;
list E1 = 8/35, 7/123, 22/1027, 4/391, 44/7779;
modrationalInterpolation(D1, E1, 1);
==> [1]:
==> 35185737407/8965053161610x4-659760301271/8965053161610x3+8448757043/16\
419511285x2-7177841332787/4482526580805x+1702354556926/896505316161
==> [2]:
==> 1
list D = 7,8,9,10;
==> // ** redefining D (list D = 7,8,9,10;)
list E = 29/8405, 74/32771, 23/14763, 112/100003;
modrationalInterpolation(D, E, 1, D1, E1);
==> [1]:
==> x2+x+2
==> [2]:
==> x5+3
| See also:
fareypoly;
polyInterpolation.
|