axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] how use trace for a domain


From: Martin Rubey
Subject: Re: [Axiom-developer] how use trace for a domain
Date: 10 Apr 2006 11:10:34 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

Dear Francois,

the command you are looking after is

)tr XXX )ops imag

where XXX is the domain/package/category your imag is implemented in. To find
out which package it is, you proceed as follows:

(1) -> )se me bo on
(1) -> imag (sin (%i))

 Function Selection for complex
      Arguments: (NNI,PI) 
   -> no appropriate complex found in NonNegativeInteger 
   -> no appropriate complex found in PositiveInteger 
   -> no appropriate complex found in Integer 
   -> no appropriate complex found in NonNegativeInteger 
   -> no appropriate complex found in PositiveInteger 
   -> no appropriate complex found in Integer 

 Modemaps from Associated Packages 
   no modemaps

 Remaining General Modemaps 
   [1] (D1,D1) -> D from D if D has COMPCAT D1 and D1 has COMRING
 
 [1]  signature:   (INT,INT) -> COMPLEX INT
      implemented: slot $(Integer)(Integer) from COMPLEX INT
 
   Loading /home/rubey/axiom/mnt/linux/algebra/INT.o for domain Integer
      
   Loading /home/rubey/axiom/mnt/linux/algebra/COMPLEX.o for domain 
      Complex 

 Function Selection for sin
      Arguments: COMPLEX INT 
   -> no appropriate sin found in Complex Integer 
   -> no appropriate sin found in Complex Integer 

 Modemaps from Associated Packages 
   no modemaps

 Remaining General Modemaps 
   [1] D -> D from D if D has TRIGCAT
   [2] 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
 
 [1]  signature:   EXPR COMPLEX INT -> EXPR COMPLEX INT
      implemented: slot $$ from EXPR COMPLEX INT

 Function Selection for imag
      Arguments: EXPR COMPLEX INT 
   -> no appropriate imag found in Expression Complex Integer 
   -> no appropriate imag found in Expression Complex Integer 

 Modemaps from Associated Packages 
   no modemaps

 Remaining General Modemaps 
   [1] D1 -> D1 from TrigonometricManipulations(D2,D1)
            if D2 has Join(GcdDomain,OrderedSet,RetractableTo Integer,
            LinearlyExplicitRingOver Integer) and D1 has Join(
            AlgebraicallyClosedField,TranscendentalFunctionCategory,
            FunctionSpace D2)
   [2] D2 -> Expression D3 from ComplexTrigonometricManipulations(D3,D2
            )
            if D3 has Join(IntegralDomain,OrderedSet,RetractableTo 
            Integer) and D2 has Join(AlgebraicallyClosedField,
            TranscendentalFunctionCategory,FunctionSpace Complex D3)
         
   [3] D -> D1 from D if D has COMPCAT D1 and D1 has COMRING
   -> no appropriate map found in Expression Complex Integer 
   -> no appropriate map found in Complex Integer 
   -> no appropriate map found in Expression Integer 
   -> no appropriate map found in Integer 
   -> no appropriate map found in Complex Integer 
   -> no appropriate map found in Integer 

 Modemaps from Associated Packages 
   [1] ((D4 -> D5),Expression D4) -> Expression D5
            from ExpressionFunctions2(D4,D5)
            if D4 has ORDSET and D5 has ORDSET
   [2] ((D4 -> D1),Kernel D4) -> D1 from ExpressionSpaceFunctions2(D4,
            D1)
            if D4 has ES and D1 has ES
   [3] ((D4 -> D5),Complex D4) -> Complex D5 from ComplexFunctions2(D4,
            D5)
            if D4 has COMRING and D5 has COMRING
 
 [1]  signature:   EXPR COMPLEX INT -> EXPR INT
      implemented: slot (Expression (Integer))(Expression (Complex (Integer))) 
from CTRIGMNP(INT,EXPR COMPLEX INT)
 [2]  signature:   EXPR COMPLEX INT -> EXPR COMPLEX INT
      implemented: slot (Expression (Complex (Integer)))(Expression (Complex 
(Integer))) from TRIGMNIP(COMPLEX INT,EXPR COMPLEX INT)
 
          2
        %e  - 1
   (1)  -------
          2%e
                                                     Type: Expression Integer

Now you have to look up "imag" in the mess above. You find

 Function Selection for imag
     Arguments: EXPR COMPLEX INT 

and at the end of axioms search you find

 [1]  signature:   EXPR COMPLEX INT -> EXPR INT
      implemented: slot (Expression (Integer))(Expression (Complex (Integer))) 
from CTRIGMNP(INT,EXPR COMPLEX INT)
 [2]  signature:   EXPR COMPLEX INT -> EXPR COMPLEX INT
      implemented: slot (Expression (Complex (Integer)))(Expression (Complex 
(Integer))) from TRIGMNIP(COMPLEX INT,EXPR COMPLEX INT)
 
Axiom takes the first matching signature, so you now know that it's 

"imag" from CTRIGMNP(INT,EXPR COMPLEX INT)

If you now say

)tr CTRIGMNP )ops imag

you'll get what you wanted.

The bind stack overflow when tracing EXPR is a bug.

Martin





reply via email to

[Prev in Thread] Current Thread [Next in Thread]