##To demonstrate how to obtain 2-dimensional Hermite interpolatory
##masks with dilaiton matrix [1, -1; 1, 1], support [-1,1]^2,
##Hermiteorder=1, multiplicity=3, and the highest sum rule=4,
##The symmetry group is the Full-Axis-Symmetry group.
##This example was given in the paper:
##Bin Han, Thomas P.-Y. Yu, Bruce Piper,
##Multivariate Refinable Hermite Interpolants, preprint.
##Then we demonstrate how to use the CBC algorithm to obtain a dual
##mask of the above matrix mask with the quincunx dilation matrix.
##using the CBC algorithm described in
## Bin Han, Approximation properties and construction of
## Hermite Interpolants and Biorthogonal Multiwavelets,
## Journal of Approximation Theory, Vol. 110, (2001) 18-53
#############################################################
##Some directly related references:
#For symmetry of a refinable function and mask with a dilation matrix
# see the papers
# Bin Han, Symmetry property and construction of wavelets with a
# general dilation matrix, Linear Algebra and Its Applications,
# (2001), to appear.
# Bin Han, Computing the smoothness exponent of a symmetric
# multivariate refinable function, (2001), preprint
# Bin Han, Thomas P.-Y. Yu, Bruce Piper,
## Multivariate Refinable Hermite Interpolants, (2002), preprint.
## Also see this paper for refinable Hermite interpolants
#For CBC algorithms on constructing biorthogonal multiwavelets.
# CBC stands for Coset By Coset
# These program is mainly based on the following paper
# Bin Han, Hermite interpolants and biorthogonal multiwavelets
# with arbitrary order of vanishing moments (1999) SPIE
# Proc. Vol. 3813, pp. 147--161.
# The CBC algorithm for the multivariate multiwavelets with
# a general dilation matrix was established.
# Also, see the following papers for the CBC algorithm
# Bin Han, Analysis and Construction of Optimal Multivariate
# Biorthogonal Wavelets With Compact Support, SIAM Journal on
# Mathematical Analysis, Vol. 31, No.2 (1999/2000), 274--304.
# CBC algorithm for interpolatory masks with dilation
# matrix 2I_s was first introduced in this paper.
# Di-Rong Chen, Bin Han and Sherman D. Riemenschneider,
# Construction of Multivariate Biorthogonal Wavelets With
# Arbitrary Vanishing Moments, Advances in Computational
# Mathematics, Vol. 13 No. 2 (2000), 131-165.
# CBC alogrithm for the scalar case with a general dilation
# matrix was established.
# Bin Han and Rong-Qing Jia, Quincunx Fundamental Refinable
# Functions and Quincunx Biorthogonal Wavelets, Mathematics of
# Computation, Vol. 71, No. 237, (2002), 165--196.
# CBC algorithm for quincunx wavelets was discussed
# Bin Han, Construction of multivariate biorthogonal wavelets by
# CBC algorithm. Wavelet analysis and multiresolution methods
# (Urbana-Champaign, IL, 1999), 105--143, Lecture Notes in Pure
# and Appl. Math., 212, Dekker, New York, 2000.
# Survey paper on CBC algorithm.
# Bin Han, Hermite interpolants and biorthogonal multiwavelets
# with arbitrary order of vanishing moments (1999) SPIE
# Proc. Vol. 3813, pp. 147--161.
# Survey paper on CBC algorithm for 1-dimensional multiwavelets.
# Papers can be downloaded at
## http://www.ualberta.ca/~bhan/publ.htm
# Program was developed by Bin Han at University of Alberta
# Version 1 on January 6, 2002.
# Initial Tests of the program have been done on January 6, 2002.
# Report bugs, mistakes, errors, comments, suggestions etc. to
# Bin Han, bhan@ualberta.ca, htpp://www.ualbert.ca/~bhan
##################################################################
read "d2cbc":
#The dilation factor you are using is 2, mask is supported on
# [-sz, sz]^2, sum rule = 4, hermiteorder=1, multiplicity=3.
#symmetry group: Full Axis symmetry group.
dilation:=Matrix([[1,-1],[1,1]]):
sz:=1:
sumrule:=4:
hermiteorder:=1:
#parametrix the mask with the symmetry group {-1, 1}
poly:=D2MaskOfSym(sz,dilation,hermiteorder,D2FullAxisSymGroup,1,ccc):
#generate the y vectors in the sum rules.
yvector:=D2YVectForHermiteMask(hermiteorder,sumrule):
EQ:=D2SumRuleEqs(poly,dilation,sumrule,yvector,2):
print(EQ[0]);
assign(solve(EQ[0]));
D2PrintMask(poly,0):
##########################################################
##Obtian a dual mask of the above matrix mask
##the dual mask is supported on [-sz,sz]^2
## which has the Full Axis Symmetry group
dualmasksz:=2:
dualmasksumrule:=4:
#parametrix the dual mask with the symmetry group {-1, 1}
#note that interpolating is set to be false here since
#a dual mask may not be interpolating
dualpoly:=D2MaskOfSym(dualmasksz,dilation,hermiteorder,D2FullAxisSymGroup,0,dd):
dyvector:=D2CBCAlgorithm(poly,dilation,dualmasksumrule,1):
EQ:=D2SumRuleEqs(dualpoly,dilation,dualmasksumrule,dyvector,2):
AllEq:=EQ[0] union D2BiorthEqs(poly,dualpoly,dilation,1,0):
solt:=solve(AllEq);
newVAR:=FreeParameter(solt,c,1):
assign(newVAR):
assign(solt):
D2PrintMask(dualpoly,0):
quit: