diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index eb313db..195facd 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -17647,13 +17647,15 @@ ElementaryFunctionSign(R,F): Exports == Implementation where
--abort if there are any variables
not empty? variables f => "failed"
-- abort in the presence of algebraic numbers
- member?(coerce("rootOf")::Symbol,map(name,operators f)$ListFunctions2(BasicOperator,Symbol)) => "failed"
+ member?(coerce("rootOf")::Symbol,
+ map(name,operators f)$ListFunctions2(BasicOperator,Symbol)) => "failed"
-- In the last resort try interval evaluation where feasible.
if R has ConvertibleTo Float then
import Interval(Float)
import Expression(Interval Float)
- mapfun : (R -> Interval(Float)) := interval(convert(#1)$R)
- f2 : Expression(Interval Float) := map(mapfun,f)$FS2(R,F,Interval(Float),Expression(Interval Float))
+ mapfun : (R -> Interval(Float)) := z +-> interval(convert(z)$R)
+ f2 : Expression(Interval Float) :=
+ map(mapfun,f)$FS2(R,F,Interval(Float),Expression(Interval Float))
r : Union(Interval(Float),"failed") := retractIfCan f2
if r case "failed" then return "failed"
negative? r => return(-1)
diff --git a/changelog b/changelog
index 5430625..81a269e 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20090515 tpd src/axiom-website/patches.html 20090515.05.tpd.patch
+20090515 tpd books/bookvol10.4 SIGNEF +-> conversion
20090515 tpd src/axiom-website/patches.html 20090515.04.tpd.patch
20090515 tpd books/bookvol10.3 PLOT3D +-> conversion
20090515 tpd src/axiom-website/patches.html 20090515.03.tpd.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index e416bff..61fb969 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -1312,5 +1312,7 @@ bookvol10.4 ODEEF +-> conversion
bookvol10.3 PLOT +-> conversion
20090515.04.tpd.patch
bookvol10.3 PLOT3D +-> conversion
+20090515.05.tpd.patch
+bookvol10.4 SIGNEF +-> conversion