{VERSION 4 0 "IBM INTEL NT" "4.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "Hyperlink" -1 17 "" 0 1 0 128 128 1 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" 0 21 "" 0 1 0 0 0 1 0 0 0 0 2 0 0 0 0 1 }{CSTYLE "Help Head ing" -1 26 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 " Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 } {PSTYLE "Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Bullet Item " -1 15 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 } 1 1 0 0 3 3 1 0 1 0 2 2 15 2 }} {SECT 0 {SECT 0 {PARA 0 "" 0 "" {TEXT 26 9 "Bug fix: " }{TEXT -1 21 "P roblems with unapply" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 13 "The function " }{MPLTEXT 0 21 7 "unapply" }{TEXT -1 152 ", which constructs a procedure from an expression, has two major \+ shortcomings, listed below. To correct them, I have written the alter native procedure " }{MPLTEXT 0 21 7 "vnapply" }{TEXT -1 1 "." }}{PARA 15 "" 0 "" {MPLTEXT 0 21 7 "unapply" }{TEXT -1 112 " does not work wit h arrays (including matrices and vectors), Arrays (including Matrices \+ or Vectors) or tables. " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 " f:=unapply(vector([1,x,x^2]), x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %\"fGR6#%\"xG6\"6$%)operatorG%&arrowGF(=F(6#;\"\"\"\"\"$E\\[l$F/F/\"\" #F'F0*$)F'F2F/F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "f(t) ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'vectorG6#7%\"\"\"%\"xG*$)F(\" \"#F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "F:= unapply(Vector ([1,x,x^2]), x);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"FGR6#%\"xG6\"6 $%)operatorG%&arrowGF(X*%)anythingG6\"F(\\[[[[[t$\"$\"\"\"%\"xG*$F0\" \"#F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "F(t);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6$\")KIS>-%'MATRIXG6#7%7#\"\"\"7#% \"xG7#*$)F.\"\"#F," }}}{PARA 0 "" 0 "" {TEXT -1 16 "Here it is with " }{MPLTEXT 0 21 7 "vnapply" }{TEXT -1 2 ": " }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 34 "f:= vnapply(vector([1,x,x^2]), x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fGR6#%\"xG6\"6$%)operatorG%&arrowGF(-%&arrayG6 $;\"\"\"\"\"$7%/F0F0/\"\"#9$/F1*$)F6F5F0F(F(F(" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 5 "f(t);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'vec torG6#7%\"\"\"%\"tG*$)F(\"\"#F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "F:= vnapply(Vector([1,x,x^2]),x);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"FGR6#%\"xG6\"6$%)operatorG%&arrowGF(-%'VectorG6(7% \"\"\"9$*$)F1\"\"#F0/%&shapeG7\"/%)datatypeG%)anythingG/%,orientationG %'columnG/%(storageG%,rectangularG/%&orderG%.Fortran_orderGF(F(F(" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "F(t);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6$\"(/:a(-%'MATRIXG6#7%7#\"\"\"7#%\"tG7#*$)F. \"\"#F," }}}{PARA 15 "" 0 "" {TEXT -1 86 "When the expression contains derivatives with respect to the variables, we don't want " }{MPLTEXT 0 21 7 "unapply" }{TEXT -1 28 " to return a result such as " } {XPPEDIT 18 0 "x -> diff(g(x),x)" "6#R6#%\"xG7\"6$%)operatorG%&arrowG6 \"-%%diffG6$-%\"gG6#F%F%F*F*F*" }{TEXT -1 36 ", because that wouldn't \+ work unless " }{MPLTEXT 0 21 1 "x" }{TEXT -1 72 " is a name of a varia ble. What we do want is to take the derivative of " }{MPLTEXT 0 21 1 "g" }{TEXT -1 101 ", and then return the function that evaluates this \+ at its argument. This can be expressed using the " }{MPLTEXT 0 21 1 " D" }{TEXT -1 10 " operator." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "unapply(diff(g(x),x), x);\nunapply(diff(g(x,y),y),y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%\"DG6#%\"gG" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#R6#%\"yG6\"6$%)operatorG%&arrowGF&--&%\"DG6#\"\"#6#%\"gG6$%\"xG9$F&F &F&" }}}{PARA 0 "" 0 "" {TEXT -1 15 "Unfortunately, " }{MPLTEXT 0 21 7 "unapply" }{TEXT -1 61 " fails to do this in slightly more complicat ed circumstances." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "unapply (2*diff(g(x),x), x);\nunapply(diff(g(x,y),x)+diff(g(x,y),y),(x,y));" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#R6#%\"xG6\"6$%)operatorG%&arrowGF&,$- %%diffG6$-%\"gG6#9$F1\"\"#F&F&F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#R6 $%\"xG%\"yG6\"6$%)operatorG%&arrowGF',&-%%diffG6$-%\"gG6$9$9%F2\"\"\"- F-6$F/F3F4F'F'F'" }}}{PARA 0 "" 0 "" {TEXT -1 19 "Here they are with \+ " }{MPLTEXT 0 21 7 "vnapply" }{TEXT -1 1 ":" }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 73 "vnapply(2*diff(g(x),x), x);\nvnapply(diff(g(x,y),x) +diff(g(x,y),y),(x,y));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#R6#%\"xG6\" 6$%)operatorG%&arrowGF&,$--%\"DG6#%\"gG6#9$\"\"#F&F&F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#R6$%\"xG%\"yG6\"6$%)operatorG%&arrowGF',&--&%\"DG6 #\"\"\"6#%\"gG6$9$9%F1--&F/6#\"\"#F2F4F1F'F'F'" }}}}{SECT 0 {PARA 0 " " 0 "" {TEXT 26 9 "See also:" }{TEXT -1 1 " " }{HYPERLNK 17 "array" 2 "array" "" }{TEXT -1 2 ", " }{HYPERLNK 17 "D" 2 "D" "" }{TEXT -1 2 ", \+ " }{HYPERLNK 17 "diff" 2 "diff" "" }{TEXT -1 2 ", " }{HYPERLNK 17 "eva lhf" 2 "evalhf" "" }{TEXT -1 2 ", " }{HYPERLNK 17 "table" 2 "table" " " }{TEXT -1 2 ", " }{HYPERLNK 17 "unapply" 2 "unapply" "" }{TEXT -1 2 ", " }{HYPERLNK 17 "vnapply" 2 "vnapply" "" }}}{SECT 0 {PARA 0 "" 0 " " {TEXT 26 24 "Maple Advisor Database, " }{TEXT -1 15 " R. Israel 2000 " }}}}{MARK "0 11 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 } {PAGENUMBERS 0 1 2 33 1 1 }{RTABLE_HANDLES 19403032 7541504 }{RTABLE M6R0 I5RTABLE_SAVE/19403032X*%)anythingG6"6"\[[[[[t$"$"""%"xG*$F(""#F& } {RTABLE M6R0 I4RTABLE_SAVE/7541504X*%)anythingG6"6"\[[[[[t$"$"""%"tG*$F(""#F& }