Consider this simple transcript with CMUCL with current
sources:
(C1) exp(1);
(D1) %E
(C2) ev(%,numer);
(D2) %E
(C3) float(%);
(D3) 2.718281828459045
(C4) exp(2);
2
(D4) %E
(C5) ev(%,numer);
(D5) 7.389056
(C6) float(d4);
(D6) 7.389056
Why is D2 still %E? Shouldn't it be the same as D3?
And why does D5 and D6 only have single precision
results? They ought to be at least double precision.
Clisp has the same problem. GCL doesn't since
single-float and double-float are the same on GCL.
Logged In: YES
user_id=28849
float(exp(2)) should return a double-float now.
float(exp(n)) when n is an integer should be a double-float too.
Logged In: YES
user_id=501686
I get similar output, except that now all numerical values
are doubles as expected ---
(%i21) exp(1);
(%o21) %e
(%i22) ev(%,numer);
(%o22) %e
(%i23) float(%);
(%o23) 2.718281828459045
(%i24) exp(2);
(%o24) %e^2
(%i25) ev(%,numer);
(%o25) 7.38905609893065
(%i26) float (%o24);
(%o26) 7.38905609893065
(%i27) float(exp(4));
(%o27) 54.59815003314424
Compare these to %i22/%o22 ---
(%i28) %e, numer;
(%o28) 2.718281828459045
(%i37) :lisp (setq $% '((mexpt) $%e 1))
((MEXPT) $%E 1)
(%i37) %, numer;
(%o37) 2.718281828459045
Hmm.
Maxima version: 5.9.1.1cvs
Maxima build date: 10:5 7/28/2005
host type: i686-redhat-linux-gnu
lisp-implementation-type: CLISP
lisp-implementation-version: 2.33.2 (2004-06-02)
Logged In: YES
user_id=501686
See also [ 531466 ] float needs to be eval. with numer (more
of the same, with different examples).
Logged In: YES
user_id=1797506
Originator: NO
I think this is by design: you need %enumer to get the numeric value of %e.
(%i9) exp(1);
(%o9) %e
(%i10) ev(%,numer,%enumer);
(%o10) 2.718281828459045
Logged In: YES
user_id=501686
Originator: NO
Closing this one as a duplicate of [ 609464 ] 1+%e,numer and %e^%e,numer. The single vs double precision floating stuff seems to have been resolved some time ago.