[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiom-developer] Re: problem plotting simple functions
From: |
Waldek Hebisch |
Subject: |
Re: [Axiom-developer] Re: problem plotting simple functions |
Date: |
Mon, 4 Jun 2007 01:42:04 +0200 (CEST) |
Bill Page wrote:
> On June 3, 2007 3:15 PM Waldek Hebisch wrote:
> >
> > Bill Page wrote:
> > > After building Axiom from a recent version of wh-sandbox
> > > (revision 580) I get the following error. The first draw
> > > command works fine but simpler examples fail:
> > >
> > > (1) -> draw(sin(x*y),x=-5..5,y=-5..5)
> > > Compiling function %H with type (DoubleFloat,DoubleFloat) ->
> > > DoubleFloat
> > > Transmitting data...
> > >
> > > (1) ThreeDimensionalViewport: "sin x*y"
> > > Type:
> > > ThreeDimensionalViewport
> > > (2) -> draw(sin(x),x=-5..5)
> > > Compiling function %J with type DoubleFloat -> DoubleFloat
> > >
> > > >> Error detected within library code:
> > > Not an integer
> > >
> Here's the debugger ouput.
>
> (1) ->
> (1) -> )lisp (si::use-fast-links nil)
> )set break break
>
> Value = NIL
> (1) -> (1) -> draw(sin,-5.0..5.0)
>
> >> Error detected within library code:
> Not an integer
>
>
>
> Break.
> Broken at SYSTEM::BREAK-LEVEL. Type :H for Help.
> BOOT>>:bt
>
> #0 BREAK {loc0=nil,loc1=nil,loc2=#<synonym stream to *terminal-io*>,loc3="
> ",loc4=nil,loc...} [ihs=41]
> #1 handleLispBreakLoop {loc0=|break|,loc1=nil,loc2=((arg (nil))),loc3=nil}
> [ihs=40]
> #2 errorSupervisor1 {loc0=|AlgebraError|,loc1="Not an
> integer",loc2=|break|,loc3="Error detected wit...} [ihs=39]
> #3 errorSupervisor {loc0=|AlgebraError|,loc1="Not an integer"} [ihs=38]
> #4 error {loc0="Not an integer"} [ihs=37]
> #5 DFLOAT;manexp {loc0=-5.0,loc1=#<vector 08e83560>,loc2=((|Integer|)
> $),loc3=#<vector 08e83560>,...} [ihs=36]
It seems that error occurs in manexp function. More preciesly, manexp
calls sign function which looks like the only place which could
signal this error.
Could you try:
exponent(-5.0)$DoubleFloat
sign(-5.0)$DoubleFloat
)lisp (float-sign -5.0 1.0)
The first line is intended to test manexp -- manexp is internal to
DoubleFloat, so we can not test it directly, but exponent just
calls manexp and extracts one of components.
Also, it may worth checking int/algebra/DFLOAT.NRLIB/code.lsp.
In my copy I have:
(DEFUN |DFLOAT;sign;$I;81| (|x| $)
(SPADCALL (FLOAT-SIGN |x| 1.0) (QREFELT $ 115)))
and earlier:
(DEFUN |DFLOAT;retract;$I;79| (|x| $)
(PROG (|n|)
(RETURN
(SEQ (LETT |n| (FIX |x|) |DFLOAT;retract;$I;79|)
(EXIT (COND
((= |x| (FLOAT |n| MOST-POSITIVE-DOUBLE-FLOAT)) |n|)
('T (|error| "Not an integer"))))))))
--
Waldek Hebisch
address@hidden