aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/float.spad.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-10-24 01:08:31 +0000
committerdos-reis <gdr@axiomatics.org>2011-10-24 01:08:31 +0000
commitcef0dd1a5a078a0d8d6b635a2c247c81c00b2a12 (patch)
tree30518cd65d39163d32898da36d58c925f58e270f /src/algebra/float.spad.pamphlet
parent6a7022d0c0be54f3411ee07663765f60691c5f0c (diff)
downloadopen-axiom-cef0dd1a5a078a0d8d6b635a2c247c81c00b2a12.tar.gz
* interp/compiler.boot (compOrCroak1): Drop last argument. Tidy.
(mostSpecificTriple): New. (compAtomWithModemap): Use it to resolve ambiguous constants. (formatConstantCandidates): New. (compForm1): Do try to compile constants 0 and 1 with compToApply. * algebra/polycat.spad.pamphlet (FiniteAbelianMonoidRing) [binomThmExpt]: Tidy. (UnivariatePolynomialCategory) [pseudoDivide]: Likewise. * algebra/float.spad.pamphlet (Float) [log]: Specificy type for local variable `l'. * interp/format.boot (formatUnabbreviatedSig): Handle constants.
Diffstat (limited to 'src/algebra/float.spad.pamphlet')
-rw-r--r--src/algebra/float.spad.pamphlet5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/algebra/float.spad.pamphlet b/src/algebra/float.spad.pamphlet
index 26c0c253..7c5a74ae 100644
--- a/src/algebra/float.spad.pamphlet
+++ b/src/algebra/float.spad.pamphlet
@@ -423,7 +423,10 @@ Float():
p := bits(); inc 5
-- apply log(x) = n log 2 + log(x/2**n) so that 1/2 < x < 2
if negative?(n := order x) then n := n+1
- l := if n = 0 then 0 else (x := shift(x,-n); n * log2())
+ l: % :=
+ n = 0 => 0
+ x := shift(x,-n)
+ n * log2()
-- speed the series convergence by finding m and k such that
-- | exp(m/2**k) x - 1 | < 1 / 2 ** O(sqrt p)
-- write log(exp(m/2**k) x) as m/2**k + log x