##To demonstrate how to obtain 1-dimensional Hermite interpolatory ##masks with dilaiton factor 2, support [-1,1], multiplicity 2, and ##the highest sum rules. That is, the masks for the Hermite cubic ##splines. ##The we demonstrate how to use the CBC algorithm to obtain a dual ##mask of the above matrix mask for the Hermite cubic spline. ################################################################# ##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. ## See this paper also 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 "d1cbc": #The dilation factor you are using is 2, mask is supported on # [-support, support], sum rule = 4, multiplicity=hermiteorder+1=2. dilation:=2: support:=1: sumrule:=4: hermiteorder:=1: #parametrix the mask with the symmetry group {-1, 1} poly:=D1MaskOfSym(support,dilation,hermiteorder,1,cc): #generate the y vectors in the sum rules. yvector:=D1YVectForHermiteMask(hermiteorder,sumrule): EQ:=D1SumRuleEqs(poly,dilation,sumrule,yvector,2): assign(solve(EQ[0])): D1PrintMask(poly,0): ########################################################### ##Obtian a dual mask of the above matrix mask dualmasksupport:=2: dualmasksumrule:=4: #parametrix the dual mask with the symmetry group {-1, 1} #note that interpolation is set to be false here since #a dual mask may not be interpolating dualpoly:=D1MaskOfSym(dualmasksupport,dilation,hermiteorder,0,dd): dualyvector:=D1CBCAlgorithm(poly,dilation,dualmasksumrule,1): EQ:=D1SumRuleEqs(dualpoly,dilation,dualmasksumrule,dualyvector,2): AllEq:=EQ[0] union D1BiorthEqs(poly,dualpoly,dilation,0,0): solt:=solve(AllEq); newVAR:=FreeParameter(solt,c,1): assign(newVAR): assign(solt): D1PrintMask(dualpoly,0): quit: