Karim BELABAS on Thu, 22 Oct 1998 18:17:03 +0200 (MET DST)

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

Re: Explain this behavior?

[Roland Dreier:]
> [Jeremy Teitelbaum:]
> > can anyone explain this to me?  The variable l1 is computed
> > in a function.   It contains a matrix with rational entries.
> > THe command mathnf(l1) fails; however, typing "l1" followed
> > by mathnf(%) works fine.
> I have experienced similar behavior when values that looked like constants
> are actually stored by gp as polynomials of degree 0.  Displaying the
> value and then using % seems to change the type (I'm not sure why).

Because automatic simplification is in effect: before any result is stored in
the history, GP tries to simplify it (\y to toggle this off though I don't
see any good reason to do so).

> You could investigate this by looking at  "type(l1[1,1])" versus
> "type(%[1,1])".

Or in one step: m=matsize(l1); matrix(m[1],m[2], i,j, type(l1[i,j]))

> If this is indeed the problem, the way around it is simply to evaluate
> your constant polynomials.  Just use "subst(l1, variable, 0)" instead of
> l1, where "variable" is the variable gp thinks the entries are polynomials
> in.

simplify(l1) would be a better solution.

Karim Belabas                    email: Karim.Belabas@math.u-psud.fr
Dep. de Mathematiques, Bat. 425
Universite Paris-Sud             Tel: (00 33) 1 69 15 57 48
F-91405 Orsay (France)           Fax: (00 33) 1 69 15 60 19
PARI/GP Home Page: http://pari.home.ml.org