Example 1 

By [HanZhuang2009], for any dilation factor d,  intpolating constant r, and hermite order h. Let L=r*(h+1).  

Then for any support constant K,  there exists a unique mask supported on [-N0, d*K-N0-1] satisfies sum rules of order L*K.
The following example is for d=r=2; h=1; Then L=4. Set K=2 and N0=1. the mask is support on [-1,2] and satisfies sum rules of order L*K=8;
 

> restart; 1
 

> read
 

> `assign`(d, 2); 1; `assign`(r, 2); 1; `assign`(h, 1); 1
 

 

 

`assign`(d, 2)
`assign`(r, 2)
`assign`(h, 1) (7.3.1)
 

> `assign`(multi, `*`(r, `*`(`+`(h, 1)))); 1
 

`assign`(multi, 4) (7.3.2)
 

> `assign`(poly, D1GenPolyMask(a, multi, -1, 2)); -1
`assign`(poly, D1GenPolyMask(a, multi, -1, 2)); -1
 

> `assign`(eq1, D1GHInterpolatoryMaskEqs(poly, d, h)); 1
`assign`(eq1, D1GHInterpolatoryMaskEqs(poly, d, h)); 1
 

`assign`(eq1, {`a101c-1`, a101c1, a101c2, `a102c-1`, a102c0, a102c1, a102c2, `a201c-1`, a201c0, a201c1, a201c2, `a202c-1`, a202c1, a202c2, `a301c-1`, a301c0, a301c2, `a302c-1`, a302c0, a302c1, a302c2,...
`assign`(eq1, {`a101c-1`, a101c1, a101c2, `a102c-1`, a102c0, a102c1, a102c2, `a201c-1`, a201c0, a201c1, a201c2, `a202c-1`, a202c1, a202c2, `a301c-1`, a301c0, a301c2, `a302c-1`, a302c0, a302c1, a302c2,...
`assign`(eq1, {`a101c-1`, a101c1, a101c2, `a102c-1`, a102c0, a102c1, a102c2, `a201c-1`, a201c0, a201c1, a201c2, `a202c-1`, a202c1, a202c2, `a301c-1`, a301c0, a301c2, `a302c-1`, a302c0, a302c1, a302c2,...
(7.3.3)
 

> `assign`(sln1, solve(eq1)); 1
 

`assign`(sln1, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a201c-1` = 0, a201c0 = 0, a201c1 = 0, a201c2 = 0, `a202c-1` = 0, a202c0 =...
`assign`(sln1, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a201c-1` = 0, a201c0 = 0, a201c1 = 0, a201c2 = 0, `a202c-1` = 0, a202c0 =...
`assign`(sln1, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a201c-1` = 0, a201c0 = 0, a201c1 = 0, a201c2 = 0, `a202c-1` = 0, a202c0 =...
`assign`(sln1, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a201c-1` = 0, a201c0 = 0, a201c1 = 0, a201c2 = 0, `a202c-1` = 0, a202c0 =...
`assign`(sln1, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a201c-1` = 0, a201c0 = 0, a201c1 = 0, a201c2 = 0, `a202c-1` = 0, a202c0 =...
(7.3.4)
 

> `assign`(poly1, subs(sln1, poly)); 1
 








(7.3.5)
 

> `assign`(eq2, D1GHIMaskSumRuleEqs(poly, d, h, 8)); -1
`assign`(eq2, D1GHIMaskSumRuleEqs(poly, d, h, 8)); -1
`assign`(eq2, D1GHIMaskSumRuleEqs(poly, d, h, 8)); -1
 

> `assign`(sln2, solve(eq2)); 1
 

`assign`(sln2, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a103c-1` = `/`(243, 1024), a103c0 = `/`(225, 1024), a103c1 = `/`(13, 1024...
`assign`(sln2, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a103c-1` = `/`(243, 1024), a103c0 = `/`(225, 1024), a103c1 = `/`(13, 1024...
`assign`(sln2, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a103c-1` = `/`(243, 1024), a103c0 = `/`(225, 1024), a103c1 = `/`(13, 1024...
`assign`(sln2, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a103c-1` = `/`(243, 1024), a103c0 = `/`(225, 1024), a103c1 = `/`(13, 1024...
`assign`(sln2, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a103c-1` = `/`(243, 1024), a103c0 = `/`(225, 1024), a103c1 = `/`(13, 1024...
`assign`(sln2, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a103c-1` = `/`(243, 1024), a103c0 = `/`(225, 1024), a103c1 = `/`(13, 1024...
`assign`(sln2, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a103c-1` = `/`(243, 1024), a103c0 = `/`(225, 1024), a103c1 = `/`(13, 1024...
`assign`(sln2, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a103c-1` = `/`(243, 1024), a103c0 = `/`(225, 1024), a103c1 = `/`(13, 1024...
`assign`(sln2, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a103c-1` = `/`(243, 1024), a103c0 = `/`(225, 1024), a103c1 = `/`(13, 1024...
`assign`(sln2, {`a101c-1` = 0, a101c0 = `/`(1, 2), a101c1 = 0, a101c2 = 0, `a102c-1` = 0, a102c0 = 0, a102c1 = 0, a102c2 = 0, `a103c-1` = `/`(243, 1024), a103c0 = `/`(225, 1024), a103c1 = `/`(13, 1024...
(7.3.6)
 

> `assign`(poly2, subs(sln2, poly1)); 1
 

`assign`(poly2, accent = bold)
`assign`(poly2, accent = bold)
`assign`(poly2, accent = bold)
`assign`(poly2, accent = bold)
`assign`(poly2, accent = bold)
(7.3.7)
 

>