Karim BELABAS on Thu, 28 Jan 1999 12:37:52 +0100 (MET)


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

Re: Lists?


[Paul van Wamelen:]
> What is the best way to set up a lookup table in gp. As a t_VEC or a t_LIST?  
> Why? I'm using a lot of vectors of vectors but it seems very slow. The same  
> thing in Mathematica is much faster...!

The best would be to program the thing in C (then use install). From within
GP the best you can do is to use lists and use setsearch/listintert

 * if the table is fixed, use listsort, then setsearch.
 * if the list is built incrementally, setsearch(l, elt, 1) return the index
where elt should be inserted in l (0 if already there), then (list)insert it.
E.g:
  if (index = setsearch(l, elt, 1),
    listinsert(l, elt, index)
  )

Karim.

P.S: hashing may speed up things depending on the exact context
--
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://hasse.mathematik.-tu-muenchen.de/ntsw/pari/