# Singular          #### 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, t:=L) 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); ==> : ==> x2+x+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); ==> : ==> 35185737407/8965053161610x4-659760301271/8965053161610x3+8448757043/16\ 419511285x2-7177841332787/4482526580805x+1702354556926/896505316161 ==> : ==> 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); ==> : ==> x2+x+2 ==> : ==> x5+3 ``` 