[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Axiom-developer] algebra cycles again (was: Left shifts of n egativ
RE: [Axiom-developer] algebra cycles again (was: Left shifts of n egative numbers)
Tue, 14 Oct 2003 22:29:55 -0400
Thanks for taking the time to explain all this.
I was especially mystified by the code in float.spad that
shift(x:%,n:I) == [x.mantissa,x.exponent+n]
but you wrote:
> Things to know:
> 2 The shift function in SingleInteger has the SPADreplace property
> (see SINT.NRLIB/code.lsp). That means that algebra code that uses
> shift will be replaced by a call to QSLEFTSHIFT at compile time.
> The line you are looking for reads:
> (PUT (QUOTE |SINT;shift;3$;44|) (QUOTE |SPADreplace|)
> (QUOTE QSLEFTSHIFT))
> In the interpreter you'll find the symbol |SINT;shift;3$;44|
> has the property |SPADreplace| on the property list
> with the value QSLEFTSHIFT
> which the compiler uses to open-code the shift function.
Wow! I think that explains a lot...
- RE: [Axiom-developer] algebra cycles again (was: Left shifts of n egative numbers),
Page, Bill <=