[BACK]Return to TODO CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari-2.2

Diff for /OpenXM_contrib/pari-2.2/Attic/TODO between version 1.1 and 1.2

version 1.1, 2001/10/02 11:16:55 version 1.2, 2002/09/11 07:26:37
Line 9  Priority classification (first column): [subjective an
Line 9  Priority classification (first column): [subjective an
 3    nice to have  3    nice to have
 2    maybe not  2    maybe not
 1    probably not  1    probably not
   0    no
 -    unclassified  -    unclassified
   
 ***************************   BUGS (general)     ****************************  ***************************   BUGS (general)     ****************************
 Unless specified otherwise, examples assume 32bit machine and default precision  Unless specified otherwise, examples assume 32bit machine and default precision
   
 5  setrand(5);thueinit(x^3 + x^2 - 43690*x - 3529208)  5  bnfinit sometimes gives wrong answers because we cheat on the value of
    ***   non positive argument in mplog. \\ precision problem  Bach's bound, using 0.3 log^2 D by default, where 0.3 should really be 12
   (under GRH). If it's not enough, we compute a subquotient of the classgroup,
   i.e junk. Ex:
    * setrand(3); bnfinit(y^4 + 1190*y^2 + 1416100).cyc --> [8,2,2,2].
      Wrong. The correct structure is [8,4,2].
   
    * setrand(1414185642); bnf = bnfinit(y^4 + 635*y^2 + 403225).reg is twice
   the correct value.
   
   5  polgalois(x^8-1864259299553450972214799899167226732549697977945716*x^6+331143259018657601105207922631212331088735421305543663274125986698777318014979969*x^4-2225286541902342283500014249183311190477390*x^2+5);
     ***   degree too large in tschirn.
   
 4  precision problems in polgalois:  4  precision problems in polgalois:
    setrand(7);     setrand(7);
    polgalois(x^8+162644002617632464507038884216211529274267271168000002)     polgalois(x^8+162644002617632464507038884216211529274267271168000002)
Line 30  Unless specified otherwise, examples assume 32bit mach
Line 41  Unless specified otherwise, examples assume 32bit mach
   
 4  qfbclassno(x < 0) may give a wrong result [e.g x = -2878367]  4  qfbclassno(x < 0) may give a wrong result [e.g x = -2878367]
   
 4  t_SER computations much too slow when number of terms increase, even  
    when applying a trivial formula, e.g cos(x) at \ps 10000  
   
 3  many functions assume MAXVARN is a free variable, yielding bogus  3  many functions assume MAXVARN is a free variable, yielding bogus
    results if the input involve it (only affect library programming).     results if the input involves it (only affects library programming).
   
 3  quadclassunit not reliable when fed non fundamental discriminants  3  quadclassunit not reliable when fed non fundamental discriminants
    (infinite loop [e.g quadclassunit(-352)], wrong result)     (infinite loop [e.g quadclassunit(-352)], wrong result)
Line 49  Unless specified otherwise, examples assume 32bit mach
Line 57  Unless specified otherwise, examples assume 32bit mach
   
 ***************************   BUGS (GP specific) ****************************  ***************************   BUGS (GP specific) ****************************
   
 5  life of GP variables too short in pathological cases:  5  readline: assume a file 'foo' exists, \rf<TAB> --> \foo [\r f<TAB> is OK]
    v = concat(v, [v=1,v=2]); concat(v, [v=1,v=2]) --> SEGV  
   
 4  changing primelimit from within forprime loop yields unpredictable results  4  changing primelimit from within forprime loop yields unpredictable results
   
 3  after allocatemem() / default(parisize, ...), the rest of the command is  3  after allocatemem() / default(parisize, ...), the rest of the command is
 discarded (ends by a longjmp).     discarded (ends by a longjmp).
   
 2  under GP after an error, memory is only recovered from "entire variables".  2  under GP after an error, memory is only recovered from "entire variables".
    Individual components of lists/vectors/matrices are left alone if the     Individual components of lists/vectors/matrices are left alone if the
Line 77  discarded (ends by a longjmp).
Line 84  discarded (ends by a longjmp).
   
 2  HTML version (pod ? SGML ? yodl ???)  2  HTML version (pod ? SGML ? yodl ???)
   
 ***************************   DEVELOPMENT     ****************************  ***************************  MISCELLANEOUS    ****************************
   
 5  write decent (specialized) benches  5  write decent (specialized) benches
   
 3  switch to autoconf  3  switch to autoconf
   
   3  use stat() instead of opendir() to check if a file is a directory.
   
 ***************************   ALGORITHMS      ****************************  ***************************   ALGORITHMS      ****************************
   
 Kernel:  Kernel:
Line 95  Kernel:
Line 104  Kernel:
   
 4  inline level0 routines should operate on _limbs_, not on words.  4  inline level0 routines should operate on _limbs_, not on words.
   
 3  inline more assembler kernels, alpha in particular (ix86 and sparc are  
    already inline).  
   
 3  FFT for basic types and polynomials (say in A[X], for A = Z, F_q, ...)  3  FFT for basic types and polynomials (say in A[X], for A = Z, F_q, ...)
   
 2  add support for different multiprecision kernels (a la LiDIA)  2  add support for different multiprecision kernels (a la LiDIA)
   
 Misc:  Misc:
 =====  =====
 5  don't assume that nf.zk is HNF. Allow using LLL-T2-reduced bases (with  
    first element 1) --> huge improvement to all idealred computations (esp.  
    bnfisprincipal, bnfinit)  
   
 4  graphics: allow FIG output (besides PostScript) [easier to edit!]  
   
 4  decent finite field package (remove all the nfxxxmodpr functions)  4  decent finite field package (remove all the nfxxxmodpr functions)
   
 4  rnfkummer (doesn't work)  4  rnfkummer (very slow)
   
 4  nfsubfields [use known subfields to discard blocs right away] (current uses  4  nfsubfields [use known subfields to discard blocs right away] (current uses
    far too much memory)     far too much memory)
   
 4  LLL over R (not stable). Clean up bibli1.c (remove duplicate code)  3  zetak is very inefficient and unable to handle most fields of degree > 8
   
 4  rethink the element_mul type of functions: multiplication table is O(n^3),  
    polynomial multiplication + remainder is O(n^2) [+ can use Karatsuba/FFT]  
   
 3  \ and % (euclidean division) could accept more arguments (e.g t_REAL)  
    x \ y := floor(x/y) if y > 0 and floor(x/y) + 1 if y < 0  
    x % y := x - y(x\y) [ hence 0 <= x%y < |y| ]  
   
 3  zetak is very inefficient and unable to handle most fields of degree > 6  
   
 3  have quadclassunit return bnf structure  3  have quadclassunit return bnf structure
   
 3  2-adic initell  3  2-adic initell
   
 3  p-adic ellztopoint  3  p-adic ellztopoint
   
   0  graphics: allow FIG output (besides PostScript) [easier to edit!]
      [ No: use pstoedit ]
   
 ***************************   LIBRARY DESIGN   ****************************  ***************************   LIBRARY DESIGN   ****************************
   
 4  a system of DEBUGLEVEL classes [e.g \g 5 "LLL" ] (such that the user can  4  a system of DEBUGLEVEL classes [e.g \g 5 "LLL" ] (such that the user can
Line 143  Misc:
Line 137  Misc:
   
 4  remove all dependences on types ordering [if (typ(x) < t_POL) ...]  4  remove all dependences on types ordering [if (typ(x) < t_POL) ...]
   
 3  integrate Ilya's code for yet bigger prime tables (pari-dev-435). Unify  
    functions using diffptr (if possible correcting the forprime bug above)  
   
 3  remove global variables gpi, geuler: their precision is unpredictable  3  remove global variables gpi, geuler: their precision is unpredictable
    (at least as much as requested in last const[pi|euler](), possibly much     (at least as much as requested in last const[pi|euler](), possibly much
    more). Explicit call to mp[pi|euler] should be required. Will break     more). Explicit call to mp[pi|euler] should be required. Will break
Line 174  Misc:
Line 165  Misc:
    before all exported functions to prevent name conflicts. Build alias     before all exported functions to prevent name conflicts. Build alias
    files for debuggers     files for debuggers
   
 2  should use vsnprintf instead of vsprintf in pariputsf. Requires GNU libio.  
    [paripusf uses static buffer which should be ok for "most" purposes]  
   
 ***************************   GP DESIGN       ****************************  ***************************   GP DESIGN       ****************************
   
 5  remove limitation to 8 arguments for static functions (argvec[9])  5  remove limitation to 8 arguments for static functions (argvec[9])
   
 4  use divide & conquer approach in string / integer conversions  4  use divide & conquer approach in string / integer conversions
   
 4  let forprime(n=a, b, ...) work even if a,b above primelimit  4  extend forprime(n=a,b,...) so that b can go over primelimit [cut [a,b]
    (maybe with a Warning), via simple sieve + pseudo primality test     in large intervals, sieve out multiple of small primes there, then use
      isprime() on the rest]
   
 3  split matrix_block in 2 parts: exploration + assignment. Would allow  
    Math::Pari to use complicated x[][][][] constructs  
   
 3  changevar with explicit (incomplete) permutation. E.g  3  changevar with explicit (incomplete) permutation. E.g
    changevar(p, [x,y], [a,b]) for x -> a, y -> b     changevar(p, [x,y], [a,b]) for x -> a, y -> b
    add a flag to substitute in succession or in parallel (e.g if a involves y)     add a flag to substitute in succession or in parallel (e.g if a involves y)
Line 208  Misc:
Line 194  Misc:
 3  a script to translate "legacy" GP code into something using GP2 function  3  a script to translate "legacy" GP code into something using GP2 function
    names     names
   
 3  write a gp-to-C compiler (adding #defines in anal.c + modifying the  
    table of functions in init.c, etc, to include the explicit function name).  
    Should be easy: the code is mostly there.  
   
 3  write an analog of the 'echo' default which would print code as it is  3  write an analog of the 'echo' default which would print code as it is
    executed, not as it is read     executed, not as it is read
   
 2  write a GP scripts debugger (cf above)  2  write a GP scripts debugger
   
 2  write a GP scripts profiler (cf above)  2  write a GP scripts profiler

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>