[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Axiom-developer] algebra cycles again (was: Left shifts of n egativ
From: |
Page, Bill |
Subject: |
RE: [Axiom-developer] algebra cycles again (was: Left shifts of n egative numbers) |
Date: |
Tue, 14 Oct 2003 22:29:55 -0400 |
Tim,
Thanks for taking the time to explain all this.
I was especially mystified by the code in float.spad that
defines:
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...
Cheers,
Bill Page.
- RE: [Axiom-developer] algebra cycles again (was: Left shifts of n egative numbers),
Page, Bill <=