#1066 specint calls asksign about internal variable PSEY


assume(p > 0, a > 0);
=> "Is psey positive, negative, or zero?"

PSEY is an internal variable, should not be visible to user.

See comments in src/hypgeo.lisp about PSEY.

From the comments, PSEY represents the parameter in a Laplace transform. Maybe it will resolve the problem to do assume(psey > 0) or something like that. Ideally that assumption would be attached to the result (after substituting the original parameter symbol for PSEY).


  • Robert Dodier

    Robert Dodier - 2007-01-14

    Logged In: YES
    Originator: YES

    Another example:

    assume (a > 0, p > 0);
    => Is (psey - a) (psey + a) positive, negative, or zero?

  • Raymond Toy

    Raymond Toy - 2007-01-17

    Logged In: YES
    Originator: NO

    By not doing the substitution, maxima no longer asks questions about psey. That's good.

    However, problem 53 in rtest14 and problems 111, 112 in rtesthyp.

    I think problem 53 is ok, just a different respresntation that maxima didn't simplify.

    However problems 111 and 112 are more fundamental. It calls LTEP to match a form, but the Laplace variable is p+%i*a instead of a simple variable. Perhaps some changes to LTEP could fix this.

  • Dieter Kaiser

    Dieter Kaiser - 2008-05-17

    Logged In: YES
    Originator: NO

    I had a look at the PSEY-problem.

    Must of the questions for the sign of the parameters which are involved in the Laplace transform arise after calling the subroutine hgsimp-exec. This routine is part of the file hyp.lisp.

    In some cases we transfer the parameter PSEY to hgsimp-exec. An example is the routine simpktf which will be called for functions involving terms e.g. like %e^(-a/t). When we do so, we are asked sometimes for the sign of PSEY. That's the case when hgsimp-exec has to calculate a square root and PSEY is involved.

    In the routine negtest we check the sign of the parameter of the Laplace transform. But because we substitute the parameter with PSEY we lost the information of the sign check.

    I think, the best we can do, is to give a Maxima a rule for the sign of PSEY. After addition of the following code to the routine negtest in the file hypgeo.lisp, we no longer get a question for the sign of PSEY. The testfile test_eqworld.mac I have appended to the bug report [1965640] no longer stops.

    ;; We know psey must be positive. psey is a substitution
    ;; for the parameter a and we have checked the sign. So it is the
    ;; best to add a rule for the sign of psey.

    (mfuncall '$assume `((mgreaterp) psey 0))

    (mul -1 a)
    (ltscale u var 'psey c 0 e f))

    ;; We forget the rule after finishing the calculation.
    (mfuncall '$forget `((mgreaterp) psey 0)))))

    Dieter Kaiser

  • Robert Dodier

    Robert Dodier - 2008-05-17

    Logged In: YES
    Originator: YES

    I'm inclined to commit the patch suggested by Dieter. What do you think, Ray?

  • Robert Dodier

    Robert Dodier - 2015-12-16

    The patch seems to have been applied in commit 7b7aff1. That seems to fix this example:

    (%i1) assume(p > 0, a > 0);
    (%o1)                           [p > 0, a > 0]
    (%i2) t^(1/2)*%e^(-p*t-a/t);
                                          (- p t) - a/t
    (%o2)                       sqrt(t) %e
    (%i3) specint(%,t);
                       3                                3                       3/4
       %pi (bessel_i(- -, 2 sqrt(a) sqrt(p)) - bessel_i(-, 2 sqrt(a) sqrt(p))) a
                       2                                2
     - ----------------------------------------------------------------------------

    but not this one:

    (%i1) assume (a > 0, p > 0);
    (%o1)                           [a > 0, p > 0]
    (%i2)        t*bessel_i(0,a*t/2)*bessel_i(1,a*t/2)*%e^(-p*t);
                                  a t              a t      - p t
    (%o2)             bessel_i(0, ---) bessel_i(1, ---) t %e
                                   2                2
    (%i3)        specint(%,t);
    Is psey - a positive, negative or zero?
  • Robert Dodier

    Robert Dodier - 2015-12-16
    • labels: Lisp Core - Integration --> specint, laplace
    • Group: --> None

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks