axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] 20090418.01.tpd.patch (bookvol10.4 convert EF to +-> s


From: daly
Subject: [Axiom-developer] 20090418.01.tpd.patch (bookvol10.4 convert EF to +-> syntax)
Date: Sat, 18 Apr 2009 19:05:11 -0500

The derivatives for trig functions in ElementaryFunctions
now use the +-> syntax. Additionally, there are new regression
tests and a help file for ElementaryFunctions.

========================================================================
diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index 885f2c7..724f459 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -15277,6 +15277,547 @@ EigenPackage(R) : C == T
 @
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{package EF ElementaryFunction}
+<<ElementaryFunction.input>>=
+)set break resume
+)sys rm -f ElementaryFunction.output
+)spool ElementaryFunction.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 32
+)trace EF
+--R 
+--R 
+--R   Parameterized constructors traced:
+--R      EF
+--E 1
+
+--S 2 of 32
+D(cos(3*x+6*y),x)
+--I 
+--I1<enter ElementaryFunction.cos,64 : ((1 #<vector 0941ef18> (1 0 . 6) (0 1 
#<vector 0941eee0> (1 0 . 3))) 0 . 1)
+--I 1<enter ElementaryFunction.iicos,154 : ((1 #<vector 0941ef18> (1 0 . 6) (0 
1 #<vector 0941eee0> (1 0 . 3))) 0 . 1)
+--I  1<enter ElementaryFunction.iisqrt2,58 : 
+--I  1>exit  ElementaryFunction.iisqrt2,58 : ((1 #<vector 0917aab8> (1 0 . 1)) 
0 . 1)
+--I  1<enter ElementaryFunction.iisqrt3,59 : 
+--I  1>exit  ElementaryFunction.iisqrt3,59 : ((1 #<vector 0917a1dc> (1 0 . 1)) 
0 . 1)
+--I  1<enter ElementaryFunction.specialTrigs,116 : ((1 #<vector 0941ef18> (1 0 
. 6) (0 1 #<vector 0941eee0> (1 0 . 3))) 0 . 1)\((((0 . 1) 0 . 1)) (((0 . -1) 0 
. 1)) (((0 . 0) 0 . 1)) (((0 . 0) 0 . 1)) (((0 . 1) 0 . 2)) (((0 . -1) 0 . 2)) 
(((0 . -1) 0 . 2)) (((0 . 1) 0 . 2)) (((1 #<vector 0917aab8> (1 0 . 1)) 0 . 2)) 
(((1 #<vector 0917aab8> (1 0 . -1)) 0 . 2)) (((1 #<vector 0917aab8> (1 0 . -1)) 
0 . 2)) (((1 #<vector 0917aab8> (1 0 . 1)) 0 . 2)) (((1 #<vector 0917a1dc> (1 0 
. 1)) 0 . 2)) (((1 #<vector 0917a1dc> (1 0 . -1)) 0 . 2)) (((1 #<vector 
0917a1dc> (1 0 . -1)) 0 . 2)) (((1 #<vector 0917a1dc> (1 0 . 1)) 0 . 2)))
+--I   1<enter ElementaryFunction.pi,46 : 
+--I   1>exit  ElementaryFunction.pi,46 : ((1 #<vector 090c3a64> (1 0 . 1)) 0 . 
1)
+--I  1>exit  ElementaryFunction.specialTrigs,116 : (1 . "failed")
+--I 1>exit  ElementaryFunction.iicos,154 : ((1 #<vector 0941ed74> (1 0 . 1)) 0 
. 1)
+--I1>exit  ElementaryFunction.cos,64 : ((1 #<vector 0941ed74> (1 0 . 1)) 0 . 1)
+--I1<enter ElementaryFunction.sin,63 : ((1 #<vector 0941ef18> (1 0 . 6) (0 1 
#<vector 0941eee0> (1 0 . 3))) 0 . 1)
+--I 1<enter ElementaryFunction.iisin,152 : ((1 #<vector 0941ef18> (1 0 . 6) (0 
1 #<vector 0941eee0> (1 0 . 3))) 0 . 1)
+--I  1<enter ElementaryFunction.iisqrt2,58 : 
+--I  1>exit  ElementaryFunction.iisqrt2,58 : ((1 #<vector 0917aab8> (1 0 . 1)) 
0 . 1)
+--I  1<enter ElementaryFunction.iisqrt3,59 : 
+--I  1>exit  ElementaryFunction.iisqrt3,59 : ((1 #<vector 0917a1dc> (1 0 . 1)) 
0 . 1)
+--I  1<enter ElementaryFunction.specialTrigs,116 : ((1 #<vector 0941ef18> (1 0 
. 6) (0 1 #<vector 0941eee0> (1 0 . 3))) 0 . 1)\((((0 . 0) 0 . 1)) (((0 . 0) 0 
. 1)) (((0 . 1) 0 . 1)) (((0 . -1) 0 . 1)) (((1 #<vector 0917a1dc> (1 0 . 1)) 0 
. 2)) (((1 #<vector 0917a1dc> (1 0 . 1)) 0 . 2)) (((1 #<vector 0917a1dc> (1 0 . 
-1)) 0 . 2)) (((1 #<vector 0917a1dc> (1 0 . -1)) 0 . 2)) (((1 #<vector 
0917aab8> (1 0 . 1)) 0 . 2)) (((1 #<vector 0917aab8> (1 0 . 1)) 0 . 2)) (((1 
#<vector 0917aab8> (1 0 . -1)) 0 . 2)) (((1 #<vector 0917aab8> (1 0 . -1)) 0 . 
2)) (((0 . 1) 0 . 2)) (((0 . 1) 0 . 2)) (((0 . -1) 0 . 2)) (((0 . -1) 0 . 2)))
+--I   1<enter ElementaryFunction.pi,46 : 
+--I   1>exit  ElementaryFunction.pi,46 : ((1 #<vector 090c3a64> (1 0 . 1)) 0 . 
1)
+--I  1>exit  ElementaryFunction.specialTrigs,116 : (1 . "failed")
+--I 1>exit  ElementaryFunction.iisin,152 : ((1 #<vector 0941eb60> (1 0 . 1)) 0 
. 1)
+--I1>exit  ElementaryFunction.sin,63 : ((1 #<vector 0941eb60> (1 0 . 1)) 0 . 1)
+--R
+--R   (1)  - 3sin(6y + 3x)
+--R                                                     Type: Expression 
Integer
+--E 2
+
+--S 3 of 32
+)trace )off
+--R 
+--R
+--R   Nothing is traced now.
+--R
+--E 3
+
+
+--S 4 of 32
+D(sin(3*x+6*y),x)
+--R 
+--R
+--R   (2)  3cos(6y + 3x)
+--R                                                     Type: Expression 
Integer
+--E 4
+
+--S 5 of 32
+D(cos(3*x+6*y),x)
+--R 
+--R
+--R   (3)  - 3sin(6y + 3x)
+--R                                                     Type: Expression 
Integer
+--E 5
+
+@
+Note that both Mathematica and Maxima return this result as
+$3 sec(3*x+6*y)^2$ but Maple returns the same result as Axiom.
+They are equivalent results.
+<<ElementaryFunction.input>>=
+
+--S 6 of 32
+D(tan(3*x+6*y),x)
+--R 
+--R
+--R                     2
+--R   (4)  3tan(6y + 3x)  + 3
+--R                                                     Type: Expression 
Integer
+--E 6
+
+--S 7 of 32
+simplify ((3*tan(6*y+3*x)^2+3) - (3*sec(3*x+6*y)^2))
+--R 
+--R
+--R   (5)  0
+--R                                                     Type: Expression 
Integer
+--E 7
+
+@
+Note that Mathematica and Maxima return $-3 csc(3x+6y)^2$
+and Maple returns the same form as Axiom. They are equivalent.
+<<ElementaryFunction.input>>=
+
+--S 8 of 32
+D(cot(3*x+6*y),x)
+--R 
+--R
+--R                       2
+--R   (6)  - 3cot(6y + 3x)  - 3
+--R                                                     Type: Expression 
Integer
+--E 8
+
+--S 9 of 32
+simplify ((-3*cot(6*y+3*x)^2-3) -(-3*csc(3*x+6*y)^2))
+--R 
+--R
+--R   (7)  0
+--R                                                     Type: Expression 
Integer
+--E 9
+
+--S 10 of 32
+D(sec(3*x+6*y),x)
+--R 
+--R
+--R   (8)  3sec(6y + 3x)tan(6y + 3x)
+--R                                                     Type: Expression 
Integer
+--E 10
+
+--S 11 of 32
+D(csc(3*x+6*y),x)
+--R 
+--R
+--R   (9)  - 3cot(6y + 3x)csc(6y + 3x)
+--R                                                     Type: Expression 
Integer
+--E 11
+
+--S 12 of 32
+D(asin(3*x+6*y),x)
+--R 
+--R
+--R                      3
+--R   (10)  ---------------------------
+--R          +------------------------+
+--R          |     2             2
+--R         \|- 36y  - 36x y - 9x  + 1
+--R                                                     Type: Expression 
Integer
+--E 12
+
+--S 13 of 32
+D(acos(3*x+6*y),x)
+--R 
+--R
+--R                        3
+--R   (11)  - ---------------------------
+--R            +------------------------+
+--R            |     2             2
+--R           \|- 36y  - 36x y - 9x  + 1
+--R                                                     Type: Expression 
Integer
+--E 13
+
+--S 14 of 32
+D(atan(3*x+6*y),x)
+--R 
+--R
+--R                    3
+--R   (12)  ----------------------
+--R            2             2
+--R         36y  + 36x y + 9x  + 1
+--R                                                     Type: Expression 
Integer
+--E 14
+
+--S 15 of 32
+D(acot(3*x+6*y),x)
+--R 
+--R
+--R                      3
+--R   (13)  - ----------------------
+--R              2             2
+--R           36y  + 36x y + 9x  + 1
+--R                                                     Type: Expression 
Integer
+--E 15
+
+@
+Mathematica, Maple, and Maxima give:
+\[\frac{3}{(3*x+6*y)^2  \sqrt{1 - \frac{1}{(3*x+6*y)^2}}}\]
+which proceeds directly from the formula for the derivative of asec:
+\[\frac{d}{dx}arcsec(x) = \frac{1}{x\sqrt{x^2-1}}\]
+<<ElementaryFunction.input>>=
+
+--S 16 of 32
+D(asec(3*x+6*y),x)
+--R 
+--R
+--R                         1
+--R   (14)  ---------------------------------
+--R                  +----------------------+
+--R                  |   2             2
+--R         (2y + x)\|36y  + 36x y + 9x  - 1
+--R                                                     Type: Expression 
Integer
+--E 16
+
+@
+If we use the same formula for this example:
+\[\frac{1}{(3*x+6*y)\sqrt{(3*x+6*y)^2-1}} d(3*x+6*y)/dx\]
+<<ElementaryFunction.input>>=
+
+--S 17 of 32
+3/((3*x+6*y)*sqrt((3*x+6*y)^2-1))
+--R 
+--R
+--R                         1
+--R   (15)  ---------------------------------
+--R                  +----------------------+
+--R                  |   2             2
+--R         (2y + x)\|36y  + 36x y + 9x  - 1
+--R                                                     Type: Expression 
Integer
+--E 17
+
+@
+Mathematica, Maple, and Maxima give
+\[- \frac{3}{(3*x+6*y)^2  \sqrt{1 - \frac{1}{(3*x+6*y)^2}}}\]
+which is just the negative of the above result and we can see
+that the same analysis applies to explain the results.
+<<ElementaryFunction.input>>=
+
+--S 18 of 32
+D(acsc(3*x+6*y),x)
+--R 
+--R
+--R                           1
+--R   (16)  - ---------------------------------
+--R                    +----------------------+
+--R                    |   2             2
+--R           (2y + x)\|36y  + 36x y + 9x  - 1
+--R                                                     Type: Expression 
Integer
+--E 18
+
+--S 19 of 32
+D(sinh(3*x+6*y),x)
+--R 
+--R
+--R   (17)  3cosh(6y + 3x)
+--R                                                     Type: Expression 
Integer
+--E 19
+
+--S 20 of 32
+D(cosh(3*x+6*y),x)
+--R 
+--R
+--R   (18)  3sinh(6y + 3x)
+--R                                                     Type: Expression 
Integer
+--E 20
+
+@
+Mathematica and Maxima return
+\[3 sech(3x+6y)^2\]
+Maple returns Axiom's answer. Both are equivalent.
+<<ElementaryFunction.input>>=
+
+--S 21 of 32
+D(tanh(3*x+6*y),x)
+--R 
+--R
+--R                         2
+--R   (19)  - 3tanh(6y + 3x)  + 3
+--R                                                     Type: Expression 
Integer
+--E 21
+
+--S 22 of 32
+simplify ((-3*tanh(6*y+3*x)^2+3)-(3*sech(3*x+6*y)^2))
+--R 
+--R
+--R   (20)  0
+--R                                                     Type: Expression 
Integer
+--E 22
+
+Mathematica and Maxima return
+\[-3 csch(3*x+6*y)^2\]
+Maple returns Axiom's answer. Both are equivalent.
+<<ElementaryFunction.input>>=
+
+--S 23 of 32
+D(coth(3*x+6*y),x)
+--R 
+--R
+--R                         2
+--R   (21)  - 3coth(6y + 3x)  + 3
+--R                                                     Type: Expression 
Integer
+--E 23
+
+--S 24 of 32
+simplify ((-3*coth(6*y+3*x)^2+3) - (-3*csch(3*x+6*y)^2))
+--R 
+--R
+--R   (22)  0
+--R                                                     Type: Expression 
Integer
+--E 24
+
+--S 25 of 32
+D(sech(3*x+6*y),x)
+--R 
+--R
+--R   (23)  - 3sech(6y + 3x)tanh(6y + 3x)
+--R                                                     Type: Expression 
Integer
+--E 25
+
+--S 26 of 32
+D(csch(3*x+6*y),x)
+--R 
+--R
+--R   (24)  - 3coth(6y + 3x)csch(6y + 3x)
+--R                                                     Type: Expression 
Integer
+--E 26
+
+--S 27 of 32
+D(asinh(3*x+6*y),x)
+--R 
+--R
+--R                     3
+--R   (25)  -------------------------
+--R          +----------------------+
+--R          |   2             2
+--R         \|36y  + 36x y + 9x  + 1
+--R                                                     Type: Expression 
Integer
+--E 27
+
+@
+Mathematica and Maple show
+\[\frac{3}{\sqrt{-1+3*x+6*y}\sqrt{1+3*x+6*y}}\]
+Maxima gives Axiom's answer. Both are equivalent, just factored forms.
+<<ElementaryFunction.input>>=
+
+--S 28 of 32
+D(acosh(3*x+6*y),x)
+--R 
+--R
+--R                     3
+--R   (26)  -------------------------
+--R          +----------------------+
+--R          |   2             2
+--R         \|36y  + 36x y + 9x  - 1
+--R                                                     Type: Expression 
Integer
+--E 28
+
+--S 29 of 32
+D(atanh(3*x+6*y),x)
+--R 
+--R
+--R                      3
+--R   (27)  - ----------------------
+--R              2             2
+--R           36y  + 36x y + 9x  - 1
+--R                                                     Type: Expression 
Integer
+--E 29
+
+--S 30 of 32
+D(acoth(3*x+6*y),x)
+--R 
+--R
+--R                      3
+--R   (28)  - ----------------------
+--R              2             2
+--R           36y  + 36x y + 9x  - 1
+--R                                                     Type: Expression 
Integer
+--E 30
+
+@
+Mathematica gives
+\[- \frac{3}{(3x+6y)\sqrt{\frac{1-3x-6y}{1_3x+6y}}(1+3x+6y)}\]
+Maxima gives
+\[- \frac{3}{(6y+3x)^2\sqrt{\frac{1}{(6y+3x)^2}-1}}\]
+Maple gives
+\[- \frac{3}{(3x+6y)^2 \sqrt{\frac{1}{3x+6y}-1} \sqrt{\frac{1}{3x+6y}+1}}\]
+
+Axiom cannot simplify these differences to zero but Maxima does which
+shows they are all equivalent answers.
+<<ElementaryFunction.input>>=
+
+--S 31 of 32
+D(asech(3*x+6*y),x)
+--R 
+--R
+--R                            1
+--R   (29)  - -----------------------------------
+--R                    +------------------------+
+--R                    |     2             2
+--R           (2y + x)\|- 36y  - 36x y - 9x  + 1
+--R                                                     Type: Expression 
Integer
+--E 31
+
+@
+Mathematica, Maple, and Maxima all generate the answer
+\[- \frac{3}{(3x+6y)^2 \sqrt{1+\frac{1}{(3x+6y)^2}}} \]
+
+Axiom cannot simplify these differences to zero but Maxima does which
+shows they are all equivalent answers.
+<<ElementaryFunction.input>>=
+
+--S 32 of 32
+D(acsch(3*x+6*y),x)
+--R 
+--R
+--R                           1
+--R   (30)  - ---------------------------------
+--R                    +----------------------+
+--R                    |   2             2
+--R           (2y + x)\|36y  + 36x y + 9x  + 1
+--R                                                     Type: Expression 
Integer
+--E 32
+
+)spool
+)lisp (bye)
+@
+<<ElementaryFunction.help>>=
+====================================================================
+ElementaryFunction examples
+====================================================================
+
+D(sin(3*x+6*y),x)
+   3cos(6y + 3x)
+
+D(cos(3*x+6*y),x)
+   - 3sin(6y + 3x)
+
+D(tan(3*x+6*y),x)
+                2
+   3tan(6y + 3x)  + 3
+
+D(cot(3*x+6*y),x)
+                  2
+   - 3cot(6y + 3x)  - 3
+
+D(sec(3*x+6*y),x)
+   3sec(6y + 3x)tan(6y + 3x)
+
+D(csc(3*x+6*y),x)
+   - 3cot(6y + 3x)csc(6y + 3x)
+
+D(asin(3*x+6*y),x)
+                3
+   ---------------------------
+    +------------------------+
+    |     2             2
+   \|- 36y  - 36x y - 9x  + 1
+
+D(acos(3*x+6*y),x)
+                  3
+   - ---------------------------
+      +------------------------+
+      |     2             2
+     \|- 36y  - 36x y - 9x  + 1
+
+D(atan(3*x+6*y),x)
+               3
+    ----------------------
+       2             2
+    36y  + 36x y + 9x  + 1
+
+D(acot(3*x+6*y),x)
+                 3
+    - ----------------------
+         2             2
+      36y  + 36x y + 9x  + 1
+
+D(asec(3*x+6*y),x)
+                    1
+    ---------------------------------
+             +----------------------+
+             |   2             2
+    (2y + x)\|36y  + 36x y + 9x  - 1
+
+D(acsc(3*x+6*y),x)
+                      1
+    - ---------------------------------
+               +----------------------+
+               |   2             2
+      (2y + x)\|36y  + 36x y + 9x  - 1
+
+
+D(sinh(3*x+6*y),x)
+    3cosh(6y + 3x)
+
+D(cosh(3*x+6*y),x)
+    3sinh(6y + 3x)
+
+D(tanh(3*x+6*y),x)
+                    2
+    - 3tanh(6y + 3x)  + 3
+
+D(coth(3*x+6*y),x)
+                    2
+    - 3coth(6y + 3x)  + 3
+
+D(sech(3*x+6*y),x)
+    - 3sech(6y + 3x)tanh(6y + 3x)
+
+D(csch(3*x+6*y),x)
+    - 3coth(6y + 3x)csch(6y + 3x)
+
+D(asinh(3*x+6*y),x)
+                3
+    -------------------------
+     +----------------------+
+     |   2             2
+    \|36y  + 36x y + 9x  + 1
+
+D(acosh(3*x+6*y),x)
+                3
+    -------------------------
+     +----------------------+
+     |   2             2
+    \|36y  + 36x y + 9x  - 1
+
+D(atanh(3*x+6*y),x)
+                 3
+    - ----------------------
+         2             2
+      36y  + 36x y + 9x  - 1
+
+D(acoth(3*x+6*y),x)
+                 3
+    - ----------------------
+         2             2
+      36y  + 36x y + 9x  - 1
+
+D(asech(3*x+6*y),x)
+                       1
+    - -----------------------------------
+               +------------------------+
+               |     2             2
+      (2y + x)\|- 36y  - 36x y - 9x  + 1
+
+D(acsch(3*x+6*y),x)
+                      1
+    - ---------------------------------
+               +----------------------+
+               |   2             2
+      (2y + x)\|36y  + 36x y + 9x  + 1
+
+See Also:
+o )show ElementaryFunction
+
+@
 \pagehead{ElementaryFunction}{EF}
 \pagepic{ps/v104elementaryfunction.ps}{EF}{1.00}
 
@@ -16143,7 +16684,9 @@ ElementaryFunction(R, F): Exports == Implementation 
where
       iiasech x == iasech x
       iiacsch x == iacsch x
 
-    evaluate(oppi, ipi)$BasicOperatorFunctions1(F)
+    import BasicOperatorFunctions1(F)
+
+    evaluate(oppi, ipi)
     evaluate(oplog, iilog)
     evaluate(opexp, iiexp)
     evaluate(opsin, iisin)
@@ -16173,29 +16716,29 @@ ElementaryFunction(R, F): Exports == Implementation 
where
     derivative(opexp, exp)
     derivative(oplog, inv)
     derivative(opsin, cos)
-    derivative(opcos, - sin #1)
-    derivative(optan, 1 + tan(#1)**2)
-    derivative(opcot, - 1 - cot(#1)**2)
-    derivative(opsec, tan(#1) * sec(#1))
-    derivative(opcsc, - cot(#1) * csc(#1))
-    derivative(opasin, inv sqrt(1 - #1**2))
-    derivative(opacos, - inv sqrt(1 - #1**2))
-    derivative(opatan, inv(1 + #1**2))
-    derivative(opacot, - inv(1 + #1**2))
-    derivative(opasec, inv(#1 * sqrt(#1**2 - 1)))
-    derivative(opacsc, - inv(#1 * sqrt(#1**2 - 1)))
+    derivative(opcos,(x:F):F +-> - sin x)
+    derivative(optan,(x:F):F +-> 1 + tan(x)**2)
+    derivative(opcot,(x:F):F +-> - 1 - cot(x)**2)
+    derivative(opsec,(x:F):F +-> tan(x) * sec(x))
+    derivative(opcsc,(x:F):F +-> - cot(x) * csc(x))
+    derivative(opasin,(x:F):F +-> inv sqrt(1 - x**2))
+    derivative(opacos,(x:F):F +-> - inv sqrt(1 - x**2))
+    derivative(opatan,(x:F):F +-> inv(1 + x**2))
+    derivative(opacot,(x:F):F +-> - inv(1 + x**2))
+    derivative(opasec,(x:F):F +-> inv(x * sqrt(x**2 - 1)))
+    derivative(opacsc,(x:F):F +-> - inv(x * sqrt(x**2 - 1)))
     derivative(opsinh, cosh)
     derivative(opcosh, sinh)
-    derivative(optanh, 1 - tanh(#1)**2)
-    derivative(opcoth, 1 - coth(#1)**2)
-    derivative(opsech, - tanh(#1) * sech(#1))
-    derivative(opcsch, - coth(#1) * csch(#1))
-    derivative(opasinh, inv sqrt(1 + #1**2))
-    derivative(opacosh, inv sqrt(#1**2 - 1))
-    derivative(opatanh, inv(1 - #1**2))
-    derivative(opacoth, inv(1 - #1**2))
-    derivative(opasech, - inv(#1 * sqrt(1 - #1**2)))
-    derivative(opacsch, - inv(#1 * sqrt(1 + #1**2)))
+    derivative(optanh,(x:F):F +-> 1 - tanh(x)**2)
+    derivative(opcoth,(x:F):F +-> 1 - coth(x)**2)
+    derivative(opsech,(x:F):F +-> - tanh(x) * sech(x))
+    derivative(opcsch,(x:F):F +-> - coth(x) * csch(x))
+    derivative(opasinh,(x:F):F +-> inv sqrt(1 + x**2))
+    derivative(opacosh,(x:F):F +-> inv sqrt(x**2 - 1))
+    derivative(opatanh,(x:F):F +-> inv(1 - x**2))
+    derivative(opacoth,(x:F):F +-> inv(1 - x**2))
+    derivative(opasech,(x:F):F +-> - inv(x * sqrt(1 - x**2)))
+    derivative(opacsch,(x:F):F +-> - inv(x * sqrt(1 + x**2)))
 
 @
 <<EF.dotabb>>=
diff --git a/changelog b/changelog
index 6a34a9a..45e78ce 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20090418 tpd src/axiom-website/patches.html 20090418.01.tpd.patch
+20090418 tpd src/algebra/Makefile add help, regress for EF
+20090418 tpd books/bookvol10.4 convert EF to +-> notation
 20090417 tpd src/axiom-website/patches.html 20090417.02.tpd.patch
 20090417 tpd books/bookvol10.4 add +-> handling
 20090417 wxh src/interp/define.boot add +-> handling
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index 8af306b..7e922ae 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -16450,7 +16450,7 @@ SPADHELP=\
  ${HELP}/CycleIndicators.help        ${HELP}/DeRhamComplex.help \
  ${HELP}/DecimalExpansion.help       ${HELP}/Dequeue.help \
  ${HELP}/DistributedMultivariatePolynomial.help \
- ${HELP}/DoubleFloat.help \
+ ${HELP}/DoubleFloat.help            ${HELP}/ElementaryFunction.help \
  ${HELP}/EqTable.help                ${HELP}/Equation.help \
  ${HELP}/Expression.help \
  ${HELP}/EuclideanGroebnerBasisPackage.help \
@@ -16543,7 +16543,7 @@ REGRESS=\
  Complex.regress                ContinuedFraction.regress \
  CycleIndicators.regress        DeRhamComplex.regress \
  DecimalExpansion.regress       Dequeue.regress \
- DoubleFloat.regress \
+ DoubleFloat.regress            ElementaryFunction.regress \
  DistributedMultivariatePolynomial.regress \
  EqTable.regress                Equation.regress \
  Expression.regress \
@@ -16840,6 +16840,16 @@ ${HELP}/DoubleFloat.help: ${BOOKS}/bookvol10.3.pamphlet
             >${INPUT}/DoubleFloat.input
        @echo "DoubleFloat (DFLOAT)" >>${HELPFILE}
 
+${HELP}/ElementaryFunction.help: ${BOOKS}/bookvol10.4.pamphlet
+       @echo 7018 create ElementaryFunction.help from \
+            ${BOOKS}/bookvol10.4.pamphlet
+       @${TANGLE} -R"ElementaryFunction.help" ${BOOKS}/bookvol10.4.pamphlet \
+            >${HELP}/ElementaryFunction.help
+       @cp ${HELP}/ElementaryFunction.help ${HELP}/EF.help
+       @${TANGLE} -R"ElementaryFunction.input" ${BOOKS}/bookvol10.4.pamphlet \
+            >${INPUT}/ElementaryFunction.input
+       @echo "ElementaryFunction (EF)" >>${HELPFILE}
+
 ${HELP}/EqTable.help: ${BOOKS}/bookvol10.3.pamphlet
        @echo 7019 create EqTable.help from ${BOOKS}/bookvol10.3.pamphlet
        @${TANGLE} -R"EqTable.help" ${BOOKS}/bookvol10.3.pamphlet \
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 073e024..a2d878e 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -1098,5 +1098,7 @@ bookvol10.4 update bezier documentation<br/>
 bookvol10.4, 10.2 document binomial<br/>
 <a href="patches/20090417.02.wxh.patch">20090417.02.wxh.patch</a>
 compiler use waldek +-> syntax <br/>
+<a href="patches/20090418.01.tpd.patch">20090418.01.tpd.patch</a>
+bookvol10.4 convert EF to +-> syntax <br/>
  </body>
 </html>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]