rtoy / maxima

A Clone of Maxima's repo
Other
0 stars 0 forks source link

noun/verb forms of erf and exp not treated consistently #254

Closed rtoy closed 4 months ago

rtoy commented 4 months ago

Imported from SourceForge on 2024-07-02 14:26:58 Created by robert_dodier on 2005-07-29 16:07:30 Original: https://sourceforge.net/p/maxima/bugs/764


MEVAL treats $ERF and %ERF, and $EXP and %EXP, differently when the argument is a floating point number. For some other functions including $SIN/%SIN, $COS/%COS, $TAN/%TAN, and $BESSEL_J/%BESSEL_J, the result is a floating point number in both cases. I haven't tried any other functions yet.

I am guessing that the result should be a float in all cases where the argument is a float.

Examples:

(%i9) :lisp (meval '(($erf) 1.0)) (($ERF SIMP) 1.0) (%i9) :lisp (meval '(($sin) 1.0)) 0.8414709848078965 (%i9) :lisp (meval '(($cos) 1.0)) 0.5403023058681398 (%i9) :lisp (meval '(($exp) 1.0)) 2.718281828459045 (%i9) :lisp (meval '(($tan) 1.0)) 1.557407724654902 (%i9) :lisp (meval '(($bessel_j) 1 1.0)) 0.4400505857449335

(%i14) :lisp (meval '((%erf) 1.0)) 0.8427007929497148 NIL (%i14) :lisp (meval '((%sin) 1.0)) 0.8414709848078965 (%i14) :lisp (meval '((%cos) 1.0)) 0.5403023058681398 (%i14) :lisp (meval '((%exp) 1.0)) ((%EXP SIMP) 1.0) (%i14) :lisp (meval '((%tan) 1.0)) 1.557407724654902 (%i14) :lisp (meval '((%bessel_j) 1 1.0)) 0.4400505857449335 NIL

rtoy commented 4 months ago

Imported from SourceForge on 2024-07-02 14:26:59 Created by macrakis on 2005-09-28 14:28:58 Original: https://sourceforge.net/p/maxima/bugs/764/#f86f


Logged In: YES user_id=588346

Yes, this should be fixed.

And the half-baked scheme where the verb form means evaluate as a float should be expunged. Currently,

(verbify(sin))(1) => 0.84

for example.

rtoy commented 4 months ago

Imported from SourceForge on 2024-07-02 14:27:01 Created by robert_dodier on 2006-08-12 16:56:34 Original: https://sourceforge.net/p/maxima/bugs/764/#35c2


Logged In: YES user_id=501686

Observed in 5.9.3.99rc1 / GCL 2.6.7.

rtoy commented 4 months ago

Imported from SourceForge on 2024-07-02 14:27:03 Created by crategus on 2009-01-04 00:30:24 Original: https://sourceforge.net/p/maxima/bugs/764/#7f2f


The Error function Erf is implemented (10/2008) as a simplifying function and works now as expected:

(%i32) erf(1.0); (%o32) 0.84270079294971 (%i33) :lisp (meval '(($erf) 1.0)) 0.84270079294971478 (%i33) :lisp (meval '((%erf) 1.0)) 0.84270079294971478

Closing the bug report as fixed.

rtoy commented 4 months ago

Imported from SourceForge on 2024-07-02 14:27:05 Created by crategus on 2009-01-04 00:30:25 Original: https://sourceforge.net/p/maxima/bugs/764/#7996


rtoy commented 4 months ago

Imported from SourceForge on 2024-07-02 14:27:07 Created by robert_dodier on 2009-01-04 17:43:46 Original: https://sourceforge.net/p/maxima/bugs/764/#74bc


erf is now consistent with other functions, but exp is not (same behavior as shown in original report). I'll open a separate bug report about that.