~peterpall/maxima/+git/maxima.code:rtoy-3965-fix-gcl-list-avail

Last commit made on 2022-05-04
Get this branch:
git clone -b rtoy-3965-fix-gcl-list-avail https://git.launchpad.net/~peterpall/maxima/+git/maxima.code

Branch merges

Branch information

Name:
rtoy-3965-fix-gcl-list-avail
Repository:
lp:~peterpall/maxima/+git/maxima.code

Recent commits

e603ead... by Raymond Toy <email address hidden>

Fix #3965: --list-avail fails for gcl

Basically just had to add "/" to the path, as we already do for clisp,
sbcl, ecl, and openmcl.

Tested this by building maxima and installing it in a temp directory
and running "maxima -l gcl --list-avail". This lists all of the lisps
I configured for running maxima.

1982c57... by Robert Dodier <email address hidden>

Disable GCL readline symbol completion by setting SI::*READLINE-PREFIX* to a nonexistent package.

Fixes SF bug #3972: "gcl only: Autocompletion inverts command case"

This is a suboptimal bug fix. As it says in the comments,

  ;; This is kind of terrible. I don't see a flag to only disable completion,
  ;; or a way to set the symbol list to Maxima symbols and disable case inversion,
  ;; so set the completion prefix to a nonexistent package.
  ;; If ever package BLURFLE is actually defined, and contains external symbols,
  ;; those symbols will be completed. I can live with that.

d038e30... by Raymond Toy <email address hidden>

Merge branch 'rtoy-3968-zeta-neg'

c8c4f53... by Raymond Toy <email address hidden>

Add more tests for zeta(-x)

Verify that float(zeta(-n/2)) is close to zeta(float(-n/2)) for
various values of odd n.

849446b... by Wolfgang Dautermann <email address hidden>

Windows installer: Output the correct path to the NSIS template.

No functional changes, just a correct output during the CMake run.

a8783d8... by Raymond Toy <email address hidden>

Fix #3968: zeta(s) for s < 0 can be expressed in terms of zeta(1-s)

zeta(s) can be written in terms of zeta(1-s), so if s < 0, we can
write it in terms of 1-s, a positive number. The relationship is

  zeta(s) = 2^s*%pi^(s-1)*sin(%pi/2*s)*gamma(1-s)*zeta(1-s))

This makes, for example, zeta(-7/2) return a result in terms of
zeta(9/2), and when you numerically evaluate it, you get the same
answer as you would get for zeta(-3.5).

This is nicer than just returning zeta(-7/2).

Add a couple of tests to rtest_zeta to verify the result.

3c2e3af... by kjak

transl: allow rest args and improve validation in MQAPPLY lambda forms

foo would fail to translate due to the rest arg:

    foo () := lambda ([[x]], x) (5)

but things like bar and baz would translate and work just fine:

    bar () := apply (lambda ([[x]], x), [5])
    baz () := block ([f : lambda ([[x]], x)], f (5))

Now rest args are allowed in MQAPPLY lambda forms.

Validation of lambda expressions (checks for an empty body, duplicate
parameters, etc.) in lambda forms has now also been improved.

No problems with the test suite, share test suite or rtest_translator.
New tests have been added to rtest_translator.

19f30f8... by Raymond Toy <email address hidden>

Fix #3967: elliptic_e(5*%pi/4,1) incorrect

elliptic_e(5*%pi/4,1) was returning 2-1/sqrt(2), but
elliptic_e(5*%pi/4,1),numer returned 2.707... or basically
2+1/sqrt(2).

This happens because we were simplifying elliptic_e(5*%pi/4,1) to
sin(5*%pi/4) = -1/sqrt(2). But we need to reduce the arg 5*%pi/4 by
%pi so we get sin(%pi/4) = 1/sqrt(2).

Add a test for this and that the symbolic and numerical values are
consistent.

Also needed to update the test for elliptic_e(x,1) to include the
reduction of the arg for the sin part.

1e7cbee... by Raymond Toy <email address hidden>

Add example for zheev

This is based on the example given by Michel Talon on the maxima list,
https://sourceforge.net/p/maxima/mailman/message/37643060/.

I tweaked it slightly in the case of computing the eigenvectors so
that we print out the eigenvalues and the eigenvectors separately so
that we can see the column vectors more clearly.

9992d6a... by Raymond Toy <email address hidden>

Add some docstrings to functions in simp.lisp

Just add some docstrings to make it easier to understand what the
function does without having to read the code. Just to lower to
burden of understanding code.