[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Re: Bug: using exp as a symbol in ** (was: System erro
From: |
William Sit |
Subject: |
[Axiom-developer] Re: Bug: using exp as a symbol in ** (was: System error: Cannot take firstof an empty list |
Date: |
Sun, 16 Jan 2005 12:43:14 -0500 |
On the other hand, even though as Vladimir Bondareko reported:
> integrate(log^log(z), z)
>
> >> System error:
> Cannot take first of an empty list
(14) -> log^(log(z))
Function Selection for log
Arguments: VARIABLE z
-> no appropriate log found in Variable z
-> no appropriate log found in Symbol
-> no appropriate log found in Variable z
-> no appropriate log found in Symbol
Modemaps from Associated Packages
no modemaps
Remaining General Modemaps
[1] FortranExpression(D1,D2,D3) -> FortranExpression(D1,D2,D3)
from FortranExpression(D1,D2,D3)
if D1: LIST SYMBOL and D2: LIST SYMBOL and D3 has FMTC
[2] D -> D from D if D has ELEMFUN
[1] signature: EXPR INT -> EXPR INT
implemented: slot $$ from EXPR INT
Function Selection for ^
Arguments: (VARIABLE log,EXPR INT)
[1] signature: (EXPR INT,EXPR INT) -> EXPR INT
implemented: slot $$$ from EXPR INT
log(z)
(14) log
Type: Expression Integer
(17) -> log^exp(x)
Function Selection for exp
Arguments: VARIABLE x
[1] signature: EXPR INT -> EXPR INT
implemented: slot $$ from EXPR INT
Function Selection for ^
Arguments: (VARIABLE log,EXPR INT)
[1] signature: (EXPR INT,EXPR INT) -> EXPR INT
implemented: slot $$$ from EXPR INT
x
%e
(17) log
Type: Expression Integer
-----------------------------------------------------------------------
Note that both works, and note that when looking for the function ^, the
interpreter recognized VARIABLE log.
-----------------------------------------------------------------------
(17) -> exp^log(x)
Function Selection for log
Arguments: VARIABLE x
[1] signature: EXPR INT -> EXPR INT
implemented: slot $$ from EXPR INT
Function Selection for ^
Arguments: (SYMBOL,EXPR INT)
[1] signature: (EXPR INT,EXPR INT) -> EXPR INT
implemented: slot $$$ from EXPR INT
>> System error:
Cannot take first of an empty list
protected-symbol-warn called with (NIL)
-----------------------------------------------------------------------
Note that that when looking for the function ^, the interpreter recognized exp
as a SYMBOL, not a VARIABLE as in the case of log.
-----------------------------------------------------------------------
(18) log
Type: Variable log
(19) -> exp
(19) exp
Type: Symbol
-----------------------------------------------------------------------
On the other hand, "correcting" the difference does not help
-----------------------------------------------------------------------
(3) -> exp:=exp::Variable(exp)
(3) exp
Type: Variable exp
(4) -> exp^log(x)
Function Selection for log
Arguments: VARIABLE x
[1] signature: EXPR INT -> EXPR INT
implemented: slot $$ from EXPR INT
Function Selection for ^
Arguments: (VARIABLE exp,EXPR INT)
[1] signature: (EXPR INT,EXPR INT) -> EXPR INT
implemented: slot $$$ from EXPR INT
>> System error:
Cannot take first of an empty list
protected-symbol-warn called with (NIL)
(4) -> exp
(4) exp
Type: Variable exp
(5) )clear all
(1) -> exp(log(x)*log(exp))
log(exp)log(x)
(1) %e
Type: Expression Integer
The implementation x**y = exp(y*log(x)) seems not to be the problem. Clearly
this points to an interpreter bug due to different treatment for log and exp
that runs deep. The error messages originates from lisp, so it may be an error
in LISP (such as a missing quote).
Whether the original
integrate(log^log(z),z)
is related to this is not clear.
Bug already existed in NAG version. So may be one of the known ones.
William