{VERSION 3 0 "IBM INTEL NT" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 6 6 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 2" 3 4 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 4 4 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Out put" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "T itle" 0 18 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 1 0 0 0 0 0 0 }3 0 0 -1 12 12 0 0 0 0 0 0 19 0 }{PSTYLE "Author" 0 19 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 0 0 -1 8 8 0 0 0 0 0 0 -1 0 }} {SECT 0 {PARA 18 "" 0 "" {TEXT -1 38 "Eigenstructure of the Doo-Sabin \+ scheme" }}{PARA 19 "" 0 "" {TEXT -1 25 "Denis Zorin, January 1998" }} {PARA 0 "" 0 "" {TEXT -1 188 "In this worksheet we compute the eigenva lues and eigenvectors of the subdivision matrix of the Doo-Sabin sche me, partially reproducing the analysis of Doo and Sabin, and Peters an d Reif. " }}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 9 "Utilities" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(linalg):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "readlib(C):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "readlib(optimize):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "readlib(procbody): readlib(procmake):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "currentdir( \"C:\\\\users\\\\dzorin \\\\maple\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#QTc:\\Program~Files\\ Maple~V~Release~5~-~Server\\BIN.WNT6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "read(`subdivmatrix-util.mpl`):" }}}}{SECT 0 {PARA 3 " " 0 "" {TEXT -1 55 "Doo-Sabin subdivision matrix, eigenvalues, eigenve ctors" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "assume( c, real); a dditionally( c >= -1 ); additionally( c <= 1); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 268 "DooSabin := matrix( [[ (1/4)*d+1/2 + (1/4)*c , 0,0,0], \n [ 9/16 + (3/16)*omega, 3/16 ,omega/16, 0],\n [ 9/16 + (3/16)*conjugate(omega), conjugate(o mega)/16, 3/16,0],\n [ 9/16, 3/16, 3/16, 1/16]\n \+ ]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%)DooSabinG-%'m atrixG6#7&7&,(%\"dG#\"\"\"\"\"%#F-\"\"#F-%#c|irGF,\"\"!F2F27&,&#\"\"* \"#;F-%&omegaG#\"\"$F7F9,$F8#F-F7F27&,&F5F--%*conjugateG6#F8F9,$F?F " 0 "" {MPLTEXT 1 0 28 "DSvar := \{ omega = c + I*s\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&DSvarG<#/%&o megaG,&%#c|irG\"\"\"*&%\"IGF*%\"sGF*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 101 "evalues := subs( s^2 = 1-c^2, [eigenvals(map( evalc, subs( \{ d = 0, op(DSvar)\}, evalm(DooSabin))))]);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%(evaluesG7&,&#\"\"\"\"\"#F(%#c|irG#F(\"\"%#F(\"#;F+ #F(\"\")" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "EV := 1/2 + 1/4 *c;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#EVG,&#\"\"\"\"\"#F'%#c|irG#F '\"\"%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "DSZero := map( ev alc, subs( \{ d = 1, c = 1, omega = 1\}, evalm(DooSabin))):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "eigenvals( DSZero);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6&\"\"\"#F#\"#;#F#\"\")#F#\"\"%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 99 "evects := subs( s^2 = 1-c^2, [eigenvects(map(eva lc,subs( \{ d = 0, op(DSvar)\}, evalm(DooSabin))))]);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'evectsG7&7%#\"\"\"\"\"%F(<#-%'vectorG6#7&\"\"!F (,&*&%\"IGF(%\"sGF(!\"\"%#c|irGF(,0F(F(F1!\"#*&F2\"\"\")F3\"\"$F9F(*(F 2F9F3F9)F5\"\"#F9F(F5F>*&F5F(,&F(F(*$F=F9F4F(F4*$)F5F;F9F47%#F(\"\")F( <#-F,6#7&F/F(,&F1F(F5F4,0F;F(F1F>F8F(FF(F5F'F( <#-F,6#7&F(,$*&,,\"#;F(FAF)*(F2F9F3F9F5F9F)F1FFF5\"#?F9,(FA!#;F5!#S!#C F(!\"\"!\"$,$*&,,FAF)F5FYFWF(FX!\"%F1!\")F9FZFhnFin,$*&,(FA\"#CF5\"#!) \"#cF(F9*&FZ\"\"\",&\"\"(F(F5F)\"\"\"Fhn!\"*7%#F(FWF(<#-F,6#7&F/F/F/F( " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 114 "for i from 1 to vectdim(evects) do \n if op(1,op(i, evects)) = EV then v := op(1, op(3, op(i, evects))); fi; \nod;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "DSEigenvector := evalm( map( factor, map(simplify, map(evalc, eval(v)))));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%.DSEigenvectorG-%'vectorG6#7&\"\"\",$*&*&%\"IG\"\"\", ,*&F-F))%#c|irG\"\"#F.!\"\"*&F-F.F2F)!\"&*&F2F.%\"sGF)F)F8F3F-!\"%F)F. *&,&F2F3\"\"$F)\"\"\",&F2F)F)F)\"\"\"!\"\"#F\"\"\"F@#!\"$F3,$*&,&F2F<\"\"(F)F.*&,&F PF)F2FG\"\"\"F;\"\"\"F@\"\"*" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 13 " Generate code" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "OutputFile \+ := `doosabin.cpp`:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "Mak eClassHeader( OutputFile, \"DooSabin\", 1,2,2, \"Biquadric\"):" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 105 "Although eigenvalues and eigenvec tors are very simple, for uniformity with other schemes we generate co de" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 128 "fprintf( OutputFile,`\\n vir tual Float Eigenvalue( int K ) \{\\n return FR(1,2) + FR(1,4)*cos(Flo at(2)*Fpi()/Float(K)); \\n\}\\n\\n`):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "GenerateEigenvectorCode(DSEigenvector, OutputFile):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 195 "fprintf( OutputFile,`vir tual void EigenvalueRange( Float c, Float& lambdamin, Float& lambdamax ) \{\\n`); \nfprintf( OutputFile,`\\n lambdamin = FR(1,2) + FR(1,4) *c; lambdamax = FR(3,4); \\n\}\\n\\n`):" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#y" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "fprintf( Outp utFile,`\};`):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "fclose(Ou tputFile):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}}{MARK "4 10 2 0 0" 58 }{VIEWOPTS 1 1 0 1 1 1803 }