aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra')
-rw-r--r--src/algebra/draw.spad.pamphlet16
-rw-r--r--src/algebra/plot.spad.pamphlet6
-rw-r--r--src/algebra/plot3d.spad.pamphlet9
3 files changed, 14 insertions, 17 deletions
diff --git a/src/algebra/draw.spad.pamphlet b/src/algebra/draw.spad.pamphlet
index b5e7bae8..f145330d 100644
--- a/src/algebra/draw.spad.pamphlet
+++ b/src/algebra/draw.spad.pamphlet
@@ -318,10 +318,10 @@ TopLevelDrawFunctionsForCompiledFunctions():
myTrap1: (SF-> SF, SF) -> SF
myTrap1(ff:SF-> SF, f:SF):SF ==
- s := trapNumericErrors(ff(f))$Lisp :: Union(SF, "failed")
- s case "failed" => quietDoubleNaN()$Foreign(Builtin)
- r:=s::SF
- r >max()$SF or r < min()$SF => quietDoubleNaN()$Foreign(Builtin)
+ s: Maybe SF := trapNumericErrors(ff(f))$Lisp
+ s case nothing => quietDoubleNaN()$Foreign(Builtin)
+ r := s@SF
+ r > max()$SF or r < min()$SF => quietDoubleNaN()$Foreign(Builtin)
r
makePt2: (SF,SF) -> Point SF
@@ -493,10 +493,10 @@ TopLevelDrawFunctionsForCompiledFunctions():
myTrap2: ((SF, SF) -> SF, SF, SF) -> SF
myTrap2(ff:(SF, SF) -> SF, u:SF, v:SF):SF ==
- s := trapNumericErrors(ff(u, v))$Lisp :: Union(SF, "failed")
- s case "failed" => quietDoubleNaN()$Foreign(Builtin)
- r:SF := s::SF
- r >max()$SF or r < min()$SF => quietDoubleNaN()$Foreign(Builtin)
+ s: Maybe SF := trapNumericErrors(ff(u, v))$Lisp
+ s case nothing => quietDoubleNaN()$Foreign(Builtin)
+ r := s@SF
+ r > max()$SF or r < min()$SF => quietDoubleNaN()$Foreign(Builtin)
r
recolor(ptFunc,colFunc) ==
diff --git a/src/algebra/plot.spad.pamphlet b/src/algebra/plot.spad.pamphlet
index d03da277..664e3036 100644
--- a/src/algebra/plot.spad.pamphlet
+++ b/src/algebra/plot.spad.pamphlet
@@ -476,9 +476,9 @@ Plot(): Exports == Implementation where
myTrap: (F-> F, F) -> F
myTrap(ff:F-> F, f:F):F ==
- s := trapNumericErrors(ff(f))$Lisp :: Union(F, "failed")
- s case "failed" => quietDoubleNaN()$Lisp
- r:F:=s::F
+ s: Maybe F := trapNumericErrors(ff(f))$Lisp
+ s case nothing => quietDoubleNaN()$Lisp
+ r:F := s@F
r > max()$F or r < min()$F => quietDoubleNaN()$Lisp
r
diff --git a/src/algebra/plot3d.spad.pamphlet b/src/algebra/plot3d.spad.pamphlet
index aa98d794..1ea091a3 100644
--- a/src/algebra/plot3d.spad.pamphlet
+++ b/src/algebra/plot3d.spad.pamphlet
@@ -445,12 +445,9 @@ Plot3D(): Exports == Implementation where
myTrap: (F-> F, F) -> F
myTrap(ff:F-> F, f:F):F ==
- s := trapNumericErrors(ff(f))$Lisp :: Union(F, "failed")
- if (s) case "failed" then
- r:F := quietDoubleNaN()$Lisp
- else
- r:F := s
- r
+ s: Maybe F := trapNumericErrors(ff(f))$Lisp
+ s case nothing => quietDoubleNaN()$Lisp
+ s
plot(f1:F -> F,f2:F -> F,f3:F -> F,col:F -> F,tRange:R) ==
p := basicPlot(point(myTrap(f1,#1),myTrap(f2,#1),myTrap(f3,#1),col(#1)),tRange)