Ticket #9898: 9898_pari_decl.patch

File 9898_pari_decl.patch, 46.8 KB (added by Jeroen Demeyer, 12 years ago)
  • sage/libs/pari/decl.pxi

    # HG changeset patch
    # User Jeroen Demeyer <jdemeyer@cage.ugent.be>
    # Date 1284577877 -7200
    # Node ID f6e6a9e6973d6c81bc2ae397d14b5e5ca31a7be0
    # Parent  12663152c47016462d0248e5b32740a5a1c406c4
    #9898: Clean up and add functions to sage/libs/pari/decl.pxi
    #9898: Rename GEN_to_str() to new_gen_to_string() and make it act more like new_gen()
    #9898: Add gen.gequal() and gen.gequal_long() functions
    
    diff -r 12663152c470 -r f6e6a9e6973d sage/libs/pari/decl.pxi
    a b  
    11include '../../ext/cdefs.pxi'
    22
    3 cdef extern from "stdlib.h":
    4     void free(void *ptr)
    5     void *malloc(size_t size)
    6     void *realloc(void *ptr, size_t size)
    7     void exit (int __status)
    8 
    9 cdef extern from "string.h":
    10     void *memmove(void *dest, void *src, size_t n)
    11     void *memcpy(void *dest, void *src, size_t n)
    12 
    133cdef extern from 'setjmp.h':
    144    struct __jmp_buf_tag:
    155        pass
     
    2212cdef extern from 'pari/paricfg.h':
    2313    char* PARIVERSION
    2414
     15
    2516cdef extern from 'pari/pari.h':
    2617    ctypedef long* GEN
    27     ctypedef void entree   # fake -- not used
    28     #ctypedef void FILE   # fake -- not used
    29     ctypedef void pariFILE   # fake -- not used
    30     ctypedef void va_list   # fake -- not used
    31     ctypedef void pari_timer   # fake -- not used   
    32     ctypedef void stackzone   # fake -- not used
    3318
    34     int new_galois_format
     19    # PARI types: these are actually an enum type, but I can't get Pyrex to "properly"
     20    # wrap enums. It doesn't matter as long as they are treated as ints by pyrex.
     21    extern int t_INT, t_REAL, t_INTMOD, t_FRAC, t_FFELT, t_COMPLEX, t_PADIC, t_QUAD, \
     22        t_POLMOD, t_POL, t_SER, t_RFRAC, t_QFR, t_QFI, t_VEC, t_COL,  \
     23        t_MAT, t_LIST, t_STR, t_VECSMALL, t_CLOSURE
     24
     25    # PARI stack
     26    ctypedef unsigned long pari_sp
     27    extern pari_sp avma, bot, top
    3528
    3629
    3730    # parigen.h
    3831
     32    extern int BITS_IN_LONG
    3933    extern int DEFAULTPREC       #  64 bits precision
    4034    extern int MEDDEFAULTPREC    # 128 bits precision
    4135    extern int BIGDEFAULTPREC    # 192 bits precision
     
    8781    GEN     gi
    8882    GEN     gen_0
    8983    GEN     gnil
     84    extern int INIT_JMPm, INIT_SIGm, INIT_DFTm
     85    extern int new_galois_format, precdl
    9086
    9187    # level1.h (incomplete!)
    9288   
    93     GEN     cgetc(long x)
    9489    GEN     cgetg_copy(long lx, GEN x)
    9590    GEN     cgetg(long x, long y)
    9691    GEN     cgeti(long x)
    9792    GEN     cgetr(long x)
     93    long    itos(GEN x)
    9894    GEN     real_0_bit(long bitprec)
     95    GEN     stoi(long s)
    9996
    100     # misc ...
    101     long    itos(GEN x)
    102     double  gtodouble(GEN x)
    103     GEN     stoi(long s)
    104     # These types are actually an enum type, but I can't get Pyrex to "properly"
    105     # wrap enums.  It doesn't matter as long as they are treated as ints by pyrexc.
    106     extern int t_INT, t_REAL, t_INTMOD, t_FRAC, t_FFELT, t_COMPLEX, t_PADIC, t_QUAD, \
    107            t_POLMOD, t_POL, t_SER, t_RFRAC, t_QFR, t_QFI, t_VEC, t_COL,  \
    108            t_MAT, t_LIST, t_STR, t_VECSMALL, t_CLOSURE
    109 
    110     extern unsigned long precdl
    111     extern char * diffptr
    112 
    113     extern int BITS_IN_LONG
    114    
    115     ctypedef unsigned long pari_sp
    116     pari_sp avma, bot, top, zonetop
    117 
    118     GEN     sd_realprecision(char* n, int flag)
    119 
    120 
    121     # Flx.c
     97    # Flx.c
    12298
    12399    GEN     Fl_to_Flx(ulong x, long sv)
    124100    GEN     Flm_to_FlxV(GEN x, long sv)
     
    185161    GEN     polx_Flx(long sv)
    186162    GEN     zero_Flx(long sv)
    187163
    188      # alglin1.c 
     164     # alglin1.c
    189165
    190166    GEN     Flm_deplin(GEN x, ulong p)
    191167    GEN     Flm_indexrank(GEN x, ulong p)
     
    242218    GEN     matmultodiagonal(GEN x, GEN y)
    243219    GEN     matsolvemod0(GEN M, GEN D, GEN Y,long flag)
    244220    long    rank(GEN x)
    245     GEN     row(GEN A, long x1)
    246     GEN     row_i(GEN A, long x0, long x1, long x2)
    247221    GEN     indexrank(GEN x)
    248222    # we rename sum to pari_sum to avoid conflicts with
    249223    # python's sum function
    250224    GEN     pari_sum "sum"(GEN v, long a, long b)
    251225    GEN     suppl(GEN x)
    252226    GEN     vconcat(GEN A, GEN B)
    253     GEN     vec_ei(long n, long i)
    254227
    255     # alglin2.c 
     228    # alglin2.c
    256229
    257230    GEN     ZM_to_zm(GEN z)
    258231    GEN     adj(GEN x)
     
    286259    GEN     zm_to_ZM(GEN z)
    287260    GEN     zx_to_ZX(GEN z)
    288261
    289     # anal.c 
     262    # anal.c
    290263
    291     void    addhelp(entree *ep, char *s)
     264    void    addhelp(char *e, char *s)
    292265    long    delete_var()
    293     entree  *fetch_named_var(char *s)
    294266    long    fetch_user_var(char *s)
    295267    long    fetch_var()
    296268    GEN     gp_read_str(char *s)
    297     void    freeep(entree *ep)
    298     entree  *gp_variable(char *s)
    299     entree* install(void *f, char *name, char *code)
    300     entree  *is_entry(char *s)
    301     void    kill0(entree *ep)
    302     long    manage_var(long n, entree *ep)
     269    void    kill0(char *e)
    303270    void    name_var(long n, char *s)
    304271    GEN     readseq(char *t)
    305272    GEN     strtoGENstr(char *s)
    306273    GEN     type0(GEN x)
    307274
    308     # arith1.c 
     275    # arith1.c
    309276
    310277    GEN     bestappr0(GEN x, GEN a, GEN b)
    311278    GEN     bestappr(GEN x, GEN k)
     
    345312    GEN     lcmii(GEN a, GEN b)
    346313    GEN     mpfact(long n)
    347314    GEN     mpfactr(long n, long prec)
    348     GEN     Fp_inv(GEN a, GEN m)
    349     GEN     Fp_invsafe(GEN a, GEN m)
    350315    GEN     Fp_pow(GEN a, GEN n, GEN m)
    351316    GEN     Fp_sqrt(GEN a, GEN p)
    352317    GEN     Fp_sqrtn(GEN a, GEN n, GEN p, GEN *zetan)
     
    372337    GEN     znprimroot0(GEN m)
    373338    GEN     znstar(GEN x)
    374339
    375     # arith2.c 
     340    # arith2.c
    376341
    377342    GEN     addprimes(GEN primes)
    378343    long    bigomega(GEN n)
     
    417382    GEN     sumdiv(GEN n)
    418383    GEN     sumdivk(GEN n,long k)
    419384
    420     # base1.c 
     385    # base1.c
    421386
    422387    GEN     bnfnewprec(GEN nf, long prec)
    423388    GEN     bnrnewprec(GEN bnr, long prec)
     
    441406    GEN     gzetakall(GEN nfz, GEN s, long flag, long prec)
    442407    GEN     mathnf0(GEN x,long flag)
    443408    GEN     matsnf0(GEN x,long flag)
    444     long    nf_get_r1(GEN nf)
    445     long    nf_get_r2(GEN nf)
    446     void    nf_get_sign(GEN nf, long *r1, long *r2)
    447409    GEN     nfinit0(GEN x, long flag, long prec)
    448410    GEN     nfnewprec(GEN nf, long prec)
    449411    GEN     rootsof1(GEN x)
    450412    GEN     tschirnhaus(GEN x)
    451413
    452     # base2.c 
     414    # base2.c
    453415
    454416    GEN     base(GEN x, GEN *y)
    455417    GEN     base2(GEN x, GEN *y)
     
    480442    GEN     rnfpseudobasis(GEN nf, GEN pol)
    481443    GEN     rnfsimplifybasis(GEN bnf, GEN order)
    482444
    483     # base3.c 
     445    # base3.c
    484446
    485447    GEN     algtobasis(GEN nf, GEN x)
    486448    GEN     basistoalg(GEN nf, GEN x)
     
    498460    GEN     zidealstar(GEN nf, GEN x)
    499461    GEN     znlog(GEN x, GEN g)
    500462
    501     # base4.c 
     463    # base4.c
    502464
    503465    GEN     nfreduce(GEN nf, GEN x, GEN ideal)
    504466    GEN     idealtwoelt(GEN nf, GEN ix)
     
    524486    GEN     idealintersect(GEN nf, GEN x, GEN y)
    525487    GEN     idealinv(GEN nf, GEN ix)
    526488    GEN     idealred0(GEN nf, GEN ix, GEN vdir)
    527     GEN     idealred_elt(GEN nf, GEN I)
    528489    GEN     idealmul(GEN nf, GEN ix, GEN iy)
    529490    GEN     idealmul0(GEN nf, GEN ix, GEN iy, long flag, long prec)
    530491    GEN     idealmulred(GEN nf, GEN ix, GEN iy)
     
    546507    GEN     vecmul(GEN x, GEN y)
    547508    GEN     vecpow(GEN x, GEN n)
    548509
    549     # base5.c 
     510    # base5.c
    550511
    551512    GEN     matalgtobasis(GEN nf, GEN x)
    552513    GEN     matbasistoalg(GEN nf, GEN x)
     
    567528    GEN     rnfidealup(GEN rnf, GEN x)
    568529    GEN     rnfinit(GEN nf, GEN pol)
    569530
    570     # bibli1.c 
     531    # bibli1.c
    571532
    572533    GEN     ZM_zc_mul(GEN x, GEN y)
    573534    GEN     ZM_zm_mul(GEN x, GEN y)
     
    612573    char    *stackmalloc(size_t N)
    613574    GEN     zncoppersmith(GEN P0, GEN N, GEN X, GEN B)
    614575
    615     # bibli2.c 
     576    # bibli2.c
    616577
    617578    GEN     binomial(GEN x, long k)
    618579    int     cmp_prime_ideal(GEN x, GEN y)
     
    662623    GEN     vecsort(GEN x, GEN k)
    663624    GEN     vecsort0(GEN x, GEN k, long flag)
    664625
    665     # buch1.c 
     626    # buch1.c
    666627
    667628    GEN     buchimag(GEN D, GEN gcbach, GEN gcbach2, GEN gCO)
    668629    GEN     buchreal(GEN D, GEN gsens, GEN gcbach, GEN gcbach2, GEN gRELSUP, long prec)
     
    671632    GEN     quadhilbert(GEN D, long prec)
    672633    GEN     quadray(GEN bnf, GEN f, GEN flag, long prec)
    673634
    674     # buch2.c 
     635    # buch2.c
    675636   
    676637    GEN     bnfinit0(GEN P,long flag,GEN data,long prec)
    677     GEN     bnf_get_fu(GEN bignf)
    678638    GEN     check_and_build_obj(GEN S, int tag, GEN (*build)(GEN))
    679639    GEN     isprincipal(GEN bignf, GEN x)
    680640    GEN     bnfisprincipal0(GEN bignf, GEN x,long flall)
     
    710670    GEN     bnrclassno(GEN bignf,GEN ideal)
    711671    GEN     bnrclassnolist(GEN bnf,GEN listes)
    712672    GEN     rnfconductor(GEN bnf, GEN polrel, long flag)
    713     GEN     rnfkummer(GEN bnr, GEN subgroup, long all, long prec)
    714673    GEN     rnfnormgroup(GEN bnr, GEN polrel)
    715674    GEN     subgrouplist0(GEN bnr, GEN indexbound, long all)
    716675
    717     # buch4.c 
     676    # buch4.c
    718677
    719678    GEN     bnfisnorm(GEN bnf,GEN x,long flag,long PREC)
    720679    GEN     rnfisnorm(GEN S, GEN x, long flag)
     
    723682    long    nfhilbert(GEN bnf,GEN a,GEN b)
    724683    long    nfhilbert0(GEN bnf,GEN a,GEN b,GEN p)
    725684
     685    # default.c
     686
     687    extern int d_SILENT, d_ACKNOWLEDGE, d_INITRC, d_RETURN
     688    GEN     default0(char *a, char *b)
     689    long    getrealprecision()
     690    GEN     sd_TeXstyle(char *v, long flag)
     691    GEN     sd_breakloop(char *v, long flag)
     692    GEN     sd_colors(char *v, long flag)
     693    GEN     sd_compatible(char *v, long flag)
     694    GEN     sd_datadir(char *v, long flag)
     695    GEN     sd_debug(char *v, long flag)
     696    GEN     sd_debugfiles(char *v, long flag)
     697    GEN     sd_debugmem(char *v, long flag)
     698    GEN     sd_echo(char *v, long flag)
     699    GEN     sd_factor_add_primes(char *v, long flag)
     700    GEN     sd_factor_proven(char *v, long flag)
     701    GEN     sd_format(char *v, long flag)
     702    GEN     sd_graphcolormap(char *v, long flag)
     703    GEN     sd_graphcolors(char *v, long flag)
     704    GEN     sd_help(char *v, long flag)
     705    GEN     sd_histsize(char *v, long flag)
     706    GEN     sd_lines(char *v, long flag)
     707    GEN     sd_log(char *v, long flag)
     708    GEN     sd_logfile(char *v, long flag)
     709    GEN     sd_new_galois_format(char *v, long flag)
     710    GEN     sd_output(char *v, long flag)
     711    GEN     sd_parisize(char *v, long flag)
     712    GEN     sd_path(char *v, long flag)
     713    GEN     sd_prettyprinter(char *v, long flag)
     714    GEN     sd_primelimit(char *v, long flag)
     715    GEN     sd_prompt(char *v, long flag)
     716    GEN     sd_prompt_cont(char *v, long flag)
     717    GEN     sd_psfile(char *v, long flag)
     718    GEN     sd_realprecision(char *v, long flag)
     719    GEN     sd_recover(char *v, long flag)
     720    GEN     sd_rl(char *v, long flag)
     721    GEN     sd_secure(char *v, long flag)
     722    GEN     sd_seriesprecision(char *v, long flag)
     723    GEN     sd_simplify(char *v, long flag)
     724    GEN     sd_strictmatch(char *v, long flag)
     725    GEN     sd_timer(char *v, long flag)
     726    long    setrealprecision(long n, long *prec)
     727
    726728    # ellanal.c
    727729
    728730    GEN     ellanalyticrank(GEN e, GEN eps, long prec)
    729731    GEN     ellL1(GEN e, long r, long prec)
    730732
    731     # elliptic.c 
     733    # elliptic.c
    732734
    733735    GEN     addell(GEN e, GEN z1, GEN z2)
    734736    GEN     akell(GEN e, GEN n)
     
    763765    GEN     weipell(GEN e, long precdl)
    764766    GEN     zell(GEN e, GEN z, long prec)
    765767
    766     # es.c 
     768    # es.c
    767769   
    768770    GEN     GENtoGENstr(GEN x)
    769771    char*   GENtoTeXstr(GEN x)
     
    785787    void    (*os_signal(int sig, void (*f)(int)))(int)
    786788    void    outmat(GEN x)
    787789    void    output(GEN x)
    788     void    pari_fclose(pariFILE *f)
    789     pariFILE*   pari_fopen(char *s, char *mode)
    790     pariFILE*   pari_safefopen(char *s, char *mode)
    791790    char*   pari_strdup(char *s)
    792791    char*   pari_strndup(char *s, long n)
    793792    char*   pari_unique_filename(char *s)
     
    802801    void    switchin(char *name)
    803802    void    switchout(char *name)
    804803    void    texe(GEN g, char format, long dec)
    805     pariFILE* try_pipe(char *cmd, int flag)
    806804    char*   type_name(long t)
    807805    void    write0(char *s, GEN g)
    808806    void    write1(char *s, GEN g)
    809807    void    writetex(char *s, GEN g)
    810808
    811     # galconj.c 
     809    # galconj.c
    812810
    813811    GEN     checkgal(GEN gal)
    814812    GEN     galoisconj0(GEN nf, long flag, GEN d, long prec)
     
    824822    long    numberofconjugates(GEN T, long pdepart)
    825823    GEN     vandermondeinverse(GEN L, GEN T, GEN den, GEN prep)
    826824   
    827     # gen1.c 
     825    # gen1.c
    828826
    829827    GEN     gadd(GEN x, GEN y)
    830828    GEN     gaddsg(long x, GEN y)
     
    833831    GEN     gsqr(GEN x)
    834832    GEN     gsub(GEN x, GEN y)
    835833
    836     # gen2.c 
     834    # gen2.c
    837835   
    838836    GEN     ZX_mul(GEN x, GEN y)
    839837    GEN     cgetp(GEN x)
     
    884882    long    Z_pval(GEN n, GEN p)
    885883    long    Z_pvalrem(GEN x, GEN p, GEN *py)
    886884
    887     # gen3.c 
     885    # gen3.c
    888886
    889887    GEN     ceil_safe(GEN x)
    890888    GEN     ceilr(GEN x)
    891889    GEN     centerlift(GEN x)
    892890    GEN     centerlift0(GEN x,long v)
    893     GEN     mkcoln(long n, ...)
    894     GEN     mkintn(long n, ...)
    895     GEN     mkpoln(long n, ...)
    896     GEN     mkvecn(long n, ...)
    897891    GEN     compo(GEN x, long n)
    898892    GEN     deg1pol(GEN x1, GEN x0,long v)
    899893    long    degree(GEN x)
     
    991985    GEN     simplify(GEN x)
    992986    GEN     tayl(GEN x, long v, long precdl)
    993987    GEN     toser_i(GEN x)
    994     GEN     truecoeff(GEN x, long n)
    995988    GEN     trunc0(GEN x, GEN *pte)
    996     GEN     zerocol(long n)
    997     GEN     zeromat(long m, long n)
    998     GEN     zeropadic(GEN p, long e)
    999     GEN     zeropol(long v)
    1000     GEN     zeroser(long v, long prec)
    1001     GEN     zerovec(long n)
    1002989
    1003990    # groupid.c
    1004991
    1005992    long    group_ident(GEN G, GEN S)
    1006993
    1007     # ifactor1.c
     994    # hash.c
    1008995
    1009     long    is_357_power(GEN x, GEN *pt, ulong *mask)
     996    ulong   hash_GEN(GEN x)
     997
     998    # ifactor1.c
     999
     1000    int     is_357_power(GEN x, GEN *pt, ulong *mask)
     1001    int     is_pth_power(GEN x, GEN *pt, ulong *curexp, ulong cutoffbits)
    10101002    GEN     nextprime(GEN n)
    10111003    GEN     precprime(GEN n)
    10121004
    1013     # init.c 
     1005    # init.c
    10141006
    1015     long    TIMER(pari_timer *T)
    1016     void    TIMERstart(pari_timer *T)
    10171007    long    allocatemoremem(size_t newsize)
    10181008    GEN     changevar(GEN x, GEN y)
    10191009    void    pari_err(long numerr, ...)
    10201010    long    err_catch(long errnum, jmp_buf *penv)
    10211011    GEN     gcopy(GEN x)
    1022     GEN     gerepile(pari_sp ltop, pari_sp lbot, GEN q)
    1023     void    gerepileall(pari_sp av, int n, ...)
    1024     void    gerepileallsp(pari_sp av, pari_sp tetpil, int n, ...)
    1025     void    gerepilecoeffs(pari_sp av, GEN x, int n)
    1026     void    gerepilecoeffssp(pari_sp av, pari_sp tetpil, long *g, int n)
    1027     GEN     gerepilecopy(pari_sp av, GEN x)
    1028     void    gerepilemany(pari_sp av, GEN* g[], int n)
    1029     void    gerepilemanysp(pari_sp av, pari_sp tetpil, GEN* g[], int n)
    1030     GEN     gerepileupto(pari_sp av, GEN q)
    1031     GEN     gerepileuptoint(pari_sp av, GEN q)
    1032     GEN     gerepileuptoleaf(pari_sp av, GEN q)
    1033     char*   pari_malloc(size_t bytes)
    1034     char*   pari_realloc(void *pointer,size_t size)
    10351012    void    gunclone(GEN x)
    1036     void    killblock(GEN x)
    1037     void    msgTIMER(pari_timer *T, char *format, ...)
    10381013    void    msgtimer(char *format, ...)
    10391014    GEN     newblock(long n)
    10401015    void    pari_close()
     
    10461021    long    timer()
    10471022    long    timer2()
    10481023
    1049     # members.c
     1024    # intnum.c
     1025
     1026    GEN     intcirc(void *E, GEN (*eval) (GEN, void *), GEN a, GEN R, GEN tab, long prec)
     1027    GEN     intfouriercos(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, GEN x, GEN tab, long prec)
     1028    GEN     intfourierexp(void *E, GEN (*eval)(GEN, void*), GEN a, GEN b, GEN x, GEN tab, long prec)
     1029    GEN     intfouriersin(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, GEN x, GEN tab, long prec)
     1030    GEN     intfuncinit(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, long m, long flag, long prec)
     1031    GEN     intlaplaceinv(void *E, GEN (*eval) (GEN, void *), GEN sig, GEN x, GEN tab, long prec)
     1032    GEN     intmellininv(void *E, GEN (*eval) (GEN, void *), GEN sig, GEN x, GEN tab, long prec)
     1033    GEN     intmellininvshort(GEN sig, GEN x, GEN tab, long prec)
     1034    GEN     intnum(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, GEN tab, long prec)
     1035    GEN     intnuminit(GEN a, GEN b, long m, long prec)
     1036    GEN     intnuminitgen(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, long m, long flext, long prec)
     1037    GEN     intnumromb(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, long flag, long prec)
     1038    long    intnumstep(long prec)
     1039    GEN     sumnum(void *E, GEN (*f) (GEN, void *), GEN a, GEN sig, GEN tab, long flag, long prec)
     1040    GEN     sumnumalt(void *E, GEN (*f) (GEN, void *), GEN a, GEN s, GEN tab, long flag, long prec)
     1041    GEN     sumnuminit(GEN sig, long m, long sgn, long prec)
     1042
     1043    # kummer.c
     1044
     1045    GEN     rnfkummer(GEN bnr, GEN subgroup, long all, long prec)
     1046
     1047    # members.c
    10501048
    10511049    GEN     member_a1(GEN x)
    10521050    GEN     member_a2(GEN x)
     
    10931091    GEN     member_zk(GEN x)
    10941092    GEN     member_zkst(GEN bid)
    10951093
    1096     # mp.c 
     1094    # mp.c
    10971095
    10981096    int     absi_cmp(GEN x, GEN y)
    10991097    int     absi_equal(GEN x, GEN y)
     
    11081106    void    affrr(GEN x, GEN y)
    11091107    GEN     bezout(GEN a, GEN b, GEN *u, GEN *v)
    11101108    long    cbezout(long a,long b,long *uu,long *vv)
    1111     void    cgiv(GEN x)
    11121109    int     cmpii(GEN x, GEN y)
    11131110    int     cmprr(GEN x, GEN y)
    11141111    int     cmpsi(long x, GEN y)
     
    11551152    ulong   umodiu(GEN y, ulong x)
    11561153    long    vals(ulong x)
    11571154
    1158     # nffactor.c 
     1155    # nffactor.c
    11591156
    11601157    GEN     nffactor(GEN nf,GEN x)
    11611158    GEN     nffactormod(GEN nf,GEN pol,GEN pr)
     
    11631160    GEN     rnfcharpoly(GEN nf,GEN T,GEN alpha,int n)
    11641161    GEN     rnfdedekind(GEN nf,GEN T,GEN pr)
    11651162
    1166     # part.c 
     1163    # part.c
    11671164
    11681165    GEN     numbpart(GEN x)
    11691166
    1170     # perm.c 
     1167    # perm.c
    11711168
    11721169    GEN     abelian_group(GEN G)
    11731170    GEN     cyclicgroup(GEN g, long s)
     
    11911188    GEN     groupelts_abelian_group(GEN S)
    11921189    int     perm_commute(GEN p, GEN q)
    11931190    GEN     perm_cycles(GEN v)
    1194     GEN     perm_inv(GEN x)
    1195     GEN     perm_mul(GEN s, GEN t)
    11961191    long    perm_order(GEN perm)
    11971192    GEN     perm_pow(GEN perm, long exp)
    11981193    GEN     quotient_group(GEN C, GEN G)
    11991194    GEN     quotient_perm(GEN C, GEN p)
    1200     GEN     vec_to_vecsmall(GEN z)
    12011195    GEN     vecperm_orbits(GEN v, long n)
    1202     GEN     vecsmall_append(GEN V, long s)
    1203     long    vecsmall_coincidence(GEN u, GEN v)
    1204     GEN     vecsmall_concat(GEN u, GEN v)
    1205     GEN     vecsmall_copy(GEN x)
    1206     int     vecsmall_lexcmp(GEN x, GEN y)
    1207     long    vecsmall_pack(GEN V, long base, long mod)
    1208     int     vecsmall_prefixcmp(GEN x, GEN y)
    1209     GEN     vecsmall_prepend(GEN V, long s)
    1210     GEN     vecsmall_shorten(GEN v, long n)
    12111196    void    vecsmall_sort(GEN V)
    1212     GEN     vecsmall_to_col(GEN z)
    1213     GEN     vecsmall_to_vec(GEN z)
    12141197    GEN     vecsmall_uniq(GEN V)
    12151198    GEN     vecvecsmall_indexsort(GEN x)
    12161199    GEN     vecvecsmall_sort(GEN x)
    12171200    long    vecvecsmall_search(GEN x, GEN y, long flag)
    12181201
    1219     # polarit1.c 
     1202    # polarit1.c
    12201203
    12211204    long    Flx_nbfact(GEN z, ulong p)
    12221205    long    Flx_nbroots(GEN f, ulong p)
     
    12511234    GEN     rootpadicfast(GEN f, GEN p, long e)
    12521235    GEN     simplefactmod(GEN f, GEN p)
    12531236
    1254     # polarit2.c 
     1237    # polarit2.c
    12551238
    12561239    GEN     Q_content(GEN x)
    12571240    GEN     Q_denom(GEN x)
     
    13121295    GEN     vecbezout(GEN x, GEN y)
    13131296    GEN     vecbezoutres(GEN x, GEN y)
    13141297
    1315     # polarit3.c 
     1298    # polarit3.c
    13161299
    13171300    GEN     Fp_pows(GEN A, long k, GEN N)
    13181301    GEN     Fp_powu(GEN x, ulong k, GEN p)
     
    13891372    GEN     ZX_resultant(GEN A, GEN B)
    13901373    long    brent_kung_optpow(long d, long n)
    13911374
    1392     # RgX.c 
     1375    # RgX.c
    13931376
    13941377    int     RgX_is_rational(GEN x)
    13951378    GEN     RgM_to_RgXV(GEN x, long v)
     
    14151398    GEN     RgXX_to_RgM(GEN v, long n)
    14161399    GEN     RgXY_swap(GEN x, long n, long w)
    14171400
    1418     # rootpol.c 
     1401    # rootpol.c
    14191402
    14201403    GEN     cleanroots(GEN x,long l)
    14211404    int     isrealappr(GEN x, long l)
    14221405    GEN     roots(GEN x,long l)
    14231406    GEN     roots0(GEN x,long flag,long l)
    14241407
    1425     # subcyclo.c 
     1408    # subcyclo.c
    14261409
    14271410    GEN     galoissubcyclo(GEN N, GEN sg, long flag, long v)
    14281411    GEN     polsubcyclo(long n, long d, long v)
    14291412    GEN     znstar_small(GEN zn)
    14301413
    1431     # subfield.c 
     1414    # subfield.c
    14321415
    14331416    GEN     nfsubfields(GEN nf, long d)
    14341417
    1435     # subgroup.c 
     1418    # subgroup.c
    14361419
    1437     void    forsubgroup(entree *oep, GEN cyc, GEN bound, char *och)
    14381420    GEN     subgrouplist(GEN cyc, GEN bound)
     1421    void    traversesubgroups(GEN cyc, GEN B, void fun(GEN,void*), void *E)
    14391422
    1440     # stark.c 
     1423    # stark.c
    14411424
    14421425    GEN     bnrL1(GEN bnr, GEN sbgrp, long flag, long prec)
    14431426    GEN     bnrrootnumber(GEN bnr, GEN chi, long flag, long prec)
    14441427    GEN     bnrstark(GEN bnr, GEN subgroup, long prec)
    14451428
    1446     # sumiter.c 
     1429    # sumiter.c
    14471430
     1431    GEN     derivnum(void *E, GEN (*eval)(GEN,void*), GEN x, long prec)
    14481432    GEN     direuler(void *E, GEN (*eval)(GEN,void*), GEN ga, GEN gb, GEN c)
    1449     GEN     direuler0(entree *ep, GEN a, GEN b, char *ch, GEN c)
    1450     GEN     divsum(GEN num,entree *ep, char *ch)
    1451     void    fordiv(GEN a, entree *ep, char *ch)
    1452     void    forpari(entree *ep, GEN a, GEN b, char *ch)
    1453     void    forprime(entree *ep, GEN a, GEN b, char *ch)
    1454     void    forstep(entree *ep, GEN a, GEN b, GEN s, char *ch)
    1455     void    forvec(entree *ep, GEN x, char *ch, long flag)
    14561433    GEN     forvec_start(GEN x, long flag, GEN *d, GEN (**next)(GEN,GEN))
    1457     GEN     intnum(void *E, GEN (*e)(GEN, void*), GEN a,GEN b, GEN tab, long prec)
    1458     long    intnumstep(long prec)
    1459     GEN     intnumromb0(entree *ep, GEN a, GEN b, char *ch, long flag, long prec)
    1460     GEN     intnum0(entree *ep, GEN a, GEN b, char *ch, GEN tab, long prec)
    1461     GEN     intcirc0(entree *ep, GEN a, GEN R, char *ch, GEN tab, long prec)
    1462     GEN     intmellininv0(entree *ep, GEN sig, GEN x, char *ch, GEN tab, long prec)
    1463     GEN     intmellininvshort(GEN sig, GEN x, GEN tab, long prec)
    1464     GEN     intlaplaceinv0(entree *ep, GEN sig, GEN x, char *ch, GEN tab, long prec)
    1465     GEN     intfoursin0(entree *ep, GEN a, GEN b, GEN x, char *ch, GEN tab, long prec)
    1466     GEN     intfourcos0(entree *ep, GEN a, GEN b, GEN x, char *ch, GEN tab, long prec)
    1467     GEN     intfourexp0(entree *ep, GEN a, GEN b, GEN x, char *ch, GEN tab, long prec)
    1468     GEN     sumnum(void *E, GEN (*f)(GEN,void*), GEN a,GEN sig,GEN tab,long flag,long prec)
    1469     GEN     sumnum0(entree *ep, GEN a, GEN sig, char *ch, GEN tab, long flag, long prec)
    1470     GEN     sumnumalt(void *E, GEN (*f)(GEN,void*),GEN a,GEN s,GEN tab,long flag,long prec)
    1471     GEN     sumnumalt0(entree *ep, GEN a, GEN sig, char *ch, GEN tab, long flag, long prec)
    1472     GEN     matrice(GEN nlig, GEN ncol,entree *ep1, entree *ep2, char *ch)
    14731434    GEN     polzag(long n, long m)
    14741435    GEN     prodeuler(void *E, GEN (*eval)(GEN,void*), GEN ga, GEN gb, long prec)
    1475     GEN     prodeuler0(entree *ep, GEN a, GEN b, char *ch, long prec)
    14761436    GEN     prodinf(void *E, GEN (*eval)(GEN,void*), GEN a, long prec)
    1477     GEN     prodinf0(entree *ep, GEN a, char *ch, long flag, long prec)
    14781437    GEN     prodinf1(void *E, GEN (*eval)(GEN,void*), GEN a, long prec)
    1479     GEN     produit(entree *ep, GEN a, GEN b, char *ch, GEN x)
    1480     GEN     somme(entree *ep, GEN a, GEN b, char *ch, GEN x)
    14811438    GEN     sumalt(void *E, GEN (*eval)(GEN,void*), GEN a, long prec)
    1482     GEN     sumalt0(entree *ep, GEN a, char *ch,long flag, long prec)
    14831439    GEN     sumalt2(void *E, GEN (*eval)(GEN,void*), GEN a, long prec)
    14841440    GEN     sumpos(void *E, GEN (*eval)(GEN,void*), GEN a, long prec)
    14851441    GEN     sumpos2(void *E, GEN (*eval)(GEN,void*), GEN a, long prec)
    1486     GEN     sumpos0(entree *ep, GEN a, char *ch, long flag,long prec)
    14871442    GEN     suminf(void *E, GEN (*eval)(GEN,void*), GEN a, long prec)
    1488     GEN     suminf0(entree *ep, GEN a, char *ch, long prec)
    1489     GEN     vecteur(GEN nmax, entree *ep, char *ch)
    1490     GEN     vecteursmall(GEN nmax, entree *ep, char *ch)
    1491     GEN     vvecteur(GEN nmax, entree *ep, char *ch)
    1492     GEN     zbrent0(entree *ep, GEN a, GEN b, char *ch, long prec)
    14931443    GEN     zbrent(void *E, GEN (*eval)(GEN,void*), GEN a, GEN b, long prec)
    14941444
    1495     # thue.c 
     1445    # thue.c
    14961446
    14971447    GEN     bnfisintnorm(GEN x, GEN y)
    14981448    GEN     thue(GEN thueres, GEN rhs, GEN ne)
    14991449    GEN     thueinit(GEN pol, long flag, long prec)
    15001450
    1501     # trans1.c 
     1451    # trans1.c
    15021452
    15031453    GEN     Pi2n(long n, long prec)
    15041454    GEN     PiI2(long prec)
     
    15261476    GEN     mppi(long prec)
    15271477    GEN     mpsin(GEN x)
    15281478    void    mpsincos(GEN x, GEN *s, GEN *c)
    1529     GEN     sqrtr(GEN x)
    1530     GEN     sqrtnr(GEN x, long n)
    15311479    GEN     powgi(GEN x, GEN n)
    15321480    GEN     teich(GEN x)
    15331481
    1534     # trans2.c 
     1482    # trans2.c
    15351483
    15361484    GEN     bernfrac(long n)
    15371485    GEN     bernreal(long n, long prec)
     
    15521500    GEN     gth(GEN x, long prec)
    15531501    void    mpbern(long nomb, long prec)
    15541502
    1555     # trans3.c 
     1503    # trans3.c
    15561504
    15571505    GEN     agm(GEN x, GEN y, long prec)
    15581506    GEN     dilog(GEN x, long prec)
     
    15861534    GEN     weberf(GEN x, long prec)
    15871535    GEN     weberf2(GEN x, long prec)
    15881536
     1537    # gmp/int.h
     1538    long*   int_MSW(GEN x)
     1539    long*   int_LSW(GEN x)
     1540    long*   int_precW(long * xp)
     1541    long*   int_nextW(long * xp)
     1542
     1543    # misc...
     1544    extern char* diffptr
     1545
     1546
     1547# Inline functions in separate file
     1548include 'declinl.pxi'
     1549
    15891550
    15901551cdef extern from 'pari/paripriv.h':
    15911552    struct __x:
    1592         char format  # e,f,g 
    1593         long fieldw  # 0 (ignored) or field width 
     1553        char format  # e,f,g
     1554        long fieldw  # 0 (ignored) or field width
    15941555        long sigd    # -1 (all) or number of significant digits printed */
    15951556        int sp       # 0 = suppress whitespace from output */
    15961557        int prettyp  # output style: raw, prettyprint, etc */
     
    16031564    ctypedef __z gp_data
    16041565    extern gp_data* GP_DATA
    16051566
    1606     long *   int_MSW(GEN x)
    1607     long *   int_LSW(GEN x)
    1608     long *   int_precW(long * xp)
    1609     long *   int_nextW(long * xp)
    16101567
    16111568cdef extern:   # paristio.h
    16121569    ctypedef struct PariOUT:
  • new file sage/libs/pari/declinl.pxi

    diff -r 12663152c470 -r f6e6a9e6973d sage/libs/pari/declinl.pxi
    - +  
     1r"""
     2Declarations for inline functions from PARI.
     3
     4This file contains all declarations from headers/pariinl.h from the
     5PARI distribution.  All these functions are simple inline functions.
     6
     7
     8AUTHORS:
     9
     10 - Jeroen Demeyer (2010-08-15): initial version
     11
     12"""
     13
     14cdef extern:
     15
     16    ###################################################################
     17    #                                                                 #
     18    #                          CONSTRUCTORS                           #
     19    #                                                                 #
     20    ###################################################################
     21   
     22    GEN     mkintmod(GEN x, GEN y)
     23    GEN     mkintmodu(ulong x, ulong y)
     24    GEN     mkpolmod(GEN x, GEN y)
     25    GEN     mkfrac(GEN x, GEN y)
     26    GEN     mkfraccopy(GEN x, GEN y)
     27    GEN     mkrfrac(GEN x, GEN y)
     28    GEN     mkcomplex(GEN x, GEN y)
     29    GEN     gen_I()
     30    GEN     cgetc(long l)
     31    GEN     mkquad(GEN n, GEN x, GEN y)
     32    GEN     mkvecsmall(long x)
     33    GEN     mkvecsmall2(long x,long y)
     34    GEN     mkvecsmall3(long x,long y,long z)
     35    GEN     mkvecsmall4(long x,long y,long z,long t)
     36    GEN     mkvec(GEN x)
     37    GEN     mkvec2(GEN x, GEN y)
     38    GEN     mkvec3(GEN x, GEN y, GEN z)
     39    GEN     mkvec4(GEN x, GEN y, GEN z, GEN t)
     40    GEN     mkvec5(GEN x, GEN y, GEN z, GEN t, GEN u)
     41    GEN     mkvecs(long x)
     42    GEN     mkvec2s(long x, long y)
     43    GEN     mkvec3s(long x, long y, long z)
     44    GEN     mkveccopy(GEN x)
     45    GEN     mkvec2copy(GEN x, GEN y)
     46    GEN     mkcol(GEN x)
     47    GEN     mkcol2(GEN x, GEN y)
     48    GEN     mkcolcopy(GEN x)
     49    GEN     mkmat(GEN x)
     50    GEN     mkmat2(GEN x, GEN y)
     51    GEN     mkmatcopy(GEN x)
     52    GEN     pol_x(long v)
     53    GEN     pol_1(long v)
     54    GEN     const_vec(long n, GEN x)
     55    GEN     const_col(long n, GEN x)
     56    GEN     const_vecsmall(long n, long c)
     57
     58    ### Zero ###
     59    GEN     zeropadic(GEN p, long e)
     60    GEN     zeroser(long v, long e)
     61    GEN     zeropol(long v)
     62    GEN     zerocol(long n)
     63    GEN     zerovec(long n)
     64    GEN     zeromat(long m, long n)
     65    GEN     zero_Flx(long sv)
     66    GEN     zero_Flv(long n)
     67    GEN     zero_Flm(long m, long n)
     68    GEN     zero_F2v(long m)
     69    GEN     zero_F2m(long m, long n)
     70    GEN     zero_F2m_copy(long m, long n)
     71    GEN     zeromatcopy(long m, long n)
     72
     73    GEN     col_ei(long n, long i)
     74    GEN     vec_ei(long n, long i)
     75    GEN     vecsmall_ei(long n, long i)
     76    GEN     Rg_col_ei(GEN x, long n, long i)
     77    GEN     shallowcopy(GEN x)
     78    GEN     vecsmall_copy(GEN x)
     79    GEN     vectrunc_init(long l)
     80    void    vectrunc_append(GEN x, GEN t)
     81    GEN     vecsmalltrunc_init(long l)
     82    void    vecsmalltrunc_append(GEN x, long t)
     83   
     84    ###################################################################
     85    #                                                                 #
     86    #                        VEC / COL / VECSMALL                     #
     87    #                                                                 #
     88    ###################################################################
     89   
     90    GEN     vec_shorten(GEN v, long n)
     91    GEN     vec_lengthen(GEN v, long n)
     92    GEN     vec_setconst(GEN v, GEN x)
     93    GEN     vecsmall_shorten(GEN v, long n)
     94    GEN     vecsmall_lengthen(GEN v, long n)
     95    GEN     vec_to_vecsmall(GEN z)
     96    GEN     vecsmall_to_vec(GEN z)
     97    GEN     vecsmall_to_col(GEN z)
     98    int     vecsmall_lexcmp(GEN x, GEN y)
     99    int     vecsmall_prefixcmp(GEN x, GEN y)
     100    GEN     vecsmall_prepend(GEN V, long s)
     101    GEN     vecsmall_append(GEN V, long s)
     102    GEN     vecsmall_concat(GEN u, GEN v)
     103    long    vecsmall_coincidence(GEN u, GEN v)
     104    long    vecsmall_isin(GEN v, long x)
     105    long    vecsmall_pack(GEN V, long base, long mod)
     106    long    vecsmall_max(GEN x)
     107    long    vecsmall_min(GEN x)
     108    int     ZV_isscalar(GEN x)
     109    int     QV_isscalar(GEN x)
     110    int     RgV_isscalar(GEN x)
     111    int     RgX_isscalar(GEN x)
     112    int     RgX_is_rational(GEN x)
     113    int     RgX_is_ZX(GEN x)
     114    int     RgX_is_monomial(GEN x)
     115    int     RgM_is_ZM(GEN x)
     116
     117    ###################################################################
     118    #                                                                 #
     119    #            Dynamic arrays implementation                        #
     120    #                                                                 #
     121    ###################################################################
     122
     123    # Omitted
     124
     125    ###################################################################
     126    #                                                                 #
     127    #                            EXTRACT                              #
     128    #                                                                 #
     129    ###################################################################
     130
     131    GEN     vecslice(GEN A, long y1, long y2)
     132    GEN     vecslicepermute(GEN A, GEN p, long y1, long y2)
     133    GEN     rowslicepermute(GEN A, GEN p, long x1, long x2)
     134    GEN     rowslice(GEN A, long x1, long x2)
     135    GEN     row(GEN A, long x0)
     136    GEN     row_Flm(GEN A, long x0)
     137    GEN     rowcopy(GEN A, long x0)
     138    GEN     row_i(GEN A, long x0, long x1, long x2)
     139    GEN     vecreverse(GEN A)
     140    GEN     vecpermute(GEN A, GEN p)
     141    GEN     rowpermute(GEN A, GEN p)
     142    void    vecselect_p(GEN A, GEN B, GEN p, long init, long lB)
     143    void    rowselect_p(GEN A, GEN B, GEN p, long init)
     144   
     145    ###################################################################
     146    #                                                                 #
     147    #                          PERMUTATIONS                           #
     148    #                                                                 #
     149    ###################################################################
     150
     151    GEN     identity_perm(long n)
     152    GEN     cyclic_perm(long n, long d)
     153    GEN     perm_mul(GEN s, GEN t)
     154    GEN     perm_inv(GEN x)
     155    GEN     perm_conj(GEN s, GEN t)
     156
     157    ###################################################################
     158    #                                                                 #
     159    #                      MALLOC/FREE WRAPPERS                       #
     160    #                                                                 #
     161    ###################################################################
     162
     163    void    pari_free(void *pointer)
     164    void*   pari_malloc(size_t size)
     165    void*   pari_realloc(void *pointer, size_t size)
     166    void*   pari_calloc(size_t size)
     167    GEN     cgetalloc(long t, size_t l)
     168
     169    ###################################################################
     170    #                                                                 #
     171    #                       GARBAGE COLLECTION                        #
     172    #                                                                 #
     173    ###################################################################
     174
     175    GEN     icopy_avma(GEN x, pari_sp av)
     176    GEN     gerepileuptoleaf(pari_sp av, GEN x)
     177    GEN     gerepileuptoint(pari_sp av, GEN x)
     178    GEN     gerepileupto(pari_sp av, GEN x)
     179    GEN     gerepilecopy(pari_sp av, GEN x)
     180    void    gerepilemany(pari_sp av, GEN* gptr[], int n)
     181    void    gerepileall(pari_sp av, int n, ...)
     182    void    gerepilecoeffs(pari_sp av, GEN x, int n)
     183    void    gerepilecoeffs2(pari_sp av, GEN x, int n, GEN y, int o)
     184    void    cgiv(GEN x)
     185    void    killblock(GEN x)
     186    int     is_universal_constant(GEN x)
     187
     188    ###################################################################
     189    #                                                                 #
     190    #                    CONVERSION / ASSIGNMENT                      #
     191    #                                                                 #
     192    ###################################################################
     193
     194    GEN     cxcompotor(GEN z, long prec)
     195    GEN     cxtofp(GEN x, long prec)
     196    double  gtodouble(GEN x)
     197    long    gtos(GEN x)
     198    GEN     absfrac(GEN x)
     199    GEN     Q_abs(GEN x)
     200    GEN     gtofp(GEN z, long prec)
     201    GEN     RgX_gtofp(GEN x, long prec)
     202    GEN     RgC_gtofp(GEN x, long prec)
     203    GEN     RgM_gtofp(GEN x, long prec)
     204    GEN     RgX_fpnorml2(GEN x, long prec)
     205    GEN     RgC_fpnorml2(GEN x, long prec)
     206    GEN     RgM_fpnorml2(GEN x, long prec)
     207    void    affgr(GEN x, GEN y)
     208    GEN     affc_fixlg(GEN x, GEN res)
     209    GEN     trunc_safe(GEN x)
     210
     211    ###################################################################
     212    #                                                                 #
     213    #                          LENGTH CONVERSIONS                     #
     214    #                                                                 #
     215    ###################################################################
     216
     217    # Omitted
     218
     219    ###################################################################
     220    #                                                                 #
     221    #                      OPERATIONS MODULO m                        #
     222    #                                                                 #
     223    ###################################################################
     224
     225    GEN     Fp_red(GEN a, GEN m)
     226    GEN     Fp_add(GEN a, GEN b, GEN m)
     227    GEN     Fp_sub(GEN a, GEN b, GEN m)
     228    GEN     Fp_neg(GEN b, GEN m)
     229    GEN     Fp_center(GEN u, GEN p, GEN ps2)
     230    GEN     Fp_mul(GEN a, GEN b, GEN m)
     231    GEN     Fp_sqr(GEN a, GEN m)
     232    GEN     Fp_mulu(GEN a, ulong b, GEN m)
     233    GEN     Fp_inv(GEN a, GEN m)
     234    GEN     Fp_invsafe(GEN a, GEN m)
     235    GEN     Fp_div(GEN a, GEN b, GEN m)
     236
     237    ###################################################################
     238    #                                                                 #
     239    #                          GEN SUBTYPES                           #
     240    #                                                                 #
     241    ###################################################################
     242
     243    int     is_const_t(long t)
     244    int     is_extscalar_t(long t)
     245    int     is_intreal_t(long t)
     246    int     is_matvec_t(long t)
     247    int     is_noncalc_t(long tx)
     248    int     is_rational_t(long t)
     249    int     is_recursive_t(long t)
     250    int     is_scalar_t(long t)
     251    int     is_vec_t(long t)
     252   
     253    ###################################################################
     254    #                                                                 #
     255    #                         TRANSCENDENTAL                          #
     256    #                                                                 #
     257    ###################################################################
     258   
     259    GEN     sqrtr(GEN x)
     260    GEN     sqrtnr(GEN x, long n)
     261   
     262    ###################################################################
     263    #                                                                 #
     264    #                         MISCELLANEOUS                           #
     265    #                                                                 #
     266    ###################################################################
     267   
     268    int     isintzero(GEN x)
     269    int     isint1(GEN x)
     270    int     isintm1(GEN x)
     271    int     equali1(GEN n)
     272    int     equalim1(GEN n)
     273    int     is_pm1(GEN n)
     274    int     is_bigint(GEN n)
     275   
     276    # Many functions omitted
     277   
     278    ### POLYNOMIALS
     279    GEN     constant_term(GEN x)
     280    GEN     leading_term(GEN x)
     281    long    degpol(GEN x)
     282    long    lgpol(GEN x)
     283    GEN     truecoeff(GEN x, long n)
     284   
     285    ###################################################################
     286    #                                                                 #
     287    #                             ASSIGNMENTS                         #
     288    #                                                                 #
     289    ###################################################################
     290
     291    # Omitted
     292   
     293    ###################################################################
     294    #                                                                 #
     295    #                       ELLIPTIC CURVES                           #
     296    #                                                                 #
     297    ###################################################################
     298
     299    GEN     ell_get_a1(GEN e)
     300    GEN     ell_get_a2(GEN e)
     301    GEN     ell_get_a3(GEN e)
     302    GEN     ell_get_a4(GEN e)
     303    GEN     ell_get_a6(GEN e)
     304    GEN     ell_get_b2(GEN e)
     305    GEN     ell_get_b4(GEN e)
     306    GEN     ell_get_b6(GEN e)
     307    GEN     ell_get_b8(GEN e)
     308    GEN     ell_get_c4(GEN e)
     309    GEN     ell_get_c6(GEN e)
     310    GEN     ell_get_disc(GEN e)
     311    GEN     ell_get_j(GEN e)
     312    GEN     ell_get_roots(GEN e)
     313   
     314    int     ell_is_inf(GEN z)
     315    int     ell_is_padic(GEN x)
     316    int     ell_is_real(GEN x)
     317   
     318    ###################################################################
     319    #                                                                 #
     320    #                    ALGEBRAIC NUMBER THEORY                      #
     321    #                                                                 #
     322    ###################################################################
     323   
     324    GEN     pr_get_p(GEN pr)
     325    GEN     pr_get_gen(GEN pr)
     326    long    pr_get_e(GEN pr)
     327    long    pr_get_f(GEN pr)
     328    GEN     pr_get_tau(GEN pr)
     329    int     pr_is_inert(GEN P)
     330    GEN     pr_norm(GEN pr)
     331   
     332    long    nf_get_varn(GEN nf)
     333    GEN     nf_get_pol(GEN nf)
     334    long    nf_get_degree(GEN nf)
     335    long    nf_get_r1(GEN nf)
     336    long    nf_get_r2(GEN nf)
     337    GEN     nf_get_disc(GEN nf)
     338    GEN     nf_get_index(GEN nf)
     339    GEN     nf_get_M(GEN nf)
     340    GEN     nf_get_G(GEN nf)
     341    GEN     nf_get_roundG(GEN nf)
     342    GEN     nf_get_Tr(GEN nf)
     343    GEN     nf_get_TrInv(GEN nf)
     344    GEN     nf_get_roots(GEN nf)
     345    GEN     nf_get_zk(GEN nf)
     346    GEN     nf_get_invzk(GEN nf)
     347    void    nf_get_sign(GEN nf, long *r1, long *r2)
     348   
     349    GEN     bnf_get_nf(GEN bnf)
     350    GEN     bnf_get_clgp(GEN bnf)
     351    GEN     bnf_get_no(GEN bnf)
     352    GEN     bnf_get_cyc(GEN bnf)
     353    GEN     bnf_get_gen(GEN bnf)
     354    GEN     bnf_get_reg(GEN bnf)
     355    GEN     bnf_get_logfu(GEN bnf)
     356    GEN     bnf_get_tuU(GEN bnf)
     357    long    bnf_get_tuN(GEN bnf)
     358    GEN     bnf_get_fu(GEN bnf)
     359    GEN     bnf_get_fu_nocheck(GEN bnf)
     360
     361    GEN     bnr_get_bnf(GEN bnr)
     362    GEN     bnr_get_bid(GEN bnr)
     363    GEN     bnr_get_mod(GEN bnr)
     364    GEN     bnr_get_nf(GEN bnr)
     365    GEN     bnr_get_no(GEN bnr)
     366    GEN     bnr_get_cyc(GEN bnr)
     367    GEN     bnr_get_gen_nocheck(GEN bnr)
     368    GEN     bnr_get_gen(GEN bnr)
     369   
     370    GEN     bid_get_mod(GEN bid)
     371    GEN     bid_get_ideal(GEN bid)
     372    GEN     bid_get_arch(GEN bid)
     373    GEN     bid_get_cyc(GEN bid)
     374    GEN     bid_get_gen_nocheck(GEN bid)
     375    GEN     bid_get_gen(GEN bid)
     376
     377    GEN     gal_get_pol(GEN gal)
     378    GEN     gal_get_p(GEN gal)
     379    GEN     gal_get_e(GEN gal)
     380    GEN     gal_get_mod(GEN gal)
     381    GEN     gal_get_roots(GEN gal)
     382    GEN     gal_get_invvdm(GEN gal)
     383    GEN     gal_get_den(GEN gal)
     384    GEN     gal_get_group(GEN gal)
     385    GEN     gal_get_gen(GEN gal)
     386    GEN     gal_get_orders(GEN gal)
     387   
     388    long    rnf_get_degree(GEN rnf)
     389   
     390    GEN     idealpseudomin(GEN I, GEN G)
     391    GEN     idealpseudomin_nonscalar(GEN I, GEN G)
     392    GEN     idealred_elt(GEN nf, GEN I)
     393    GEN     idealred(GEN nf, GEN I)
  • sage/libs/pari/gen.pxd

    diff -r 12663152c470 -r f6e6a9e6973d sage/libs/pari/gen.pxd
    a b  
    1919cdef class PariInstance(sage.structure.parent_base.ParentWithBase):
    2020    cdef gen PARI_ZERO, PARI_ONE, PARI_TWO
    2121    cdef gen new_gen(self, GEN x)
     22    cdef object new_gen_to_string(self, GEN x)
    2223    cdef gen new_gen_noclear(self, GEN x)
    2324    cdef gen new_gen_from_mpz_t(self, mpz_t value)
    2425    cdef gen new_gen_from_mpq_t(self, mpq_t value)
     
    3435    cdef gen new_ref(self, GEN g, gen parent)
    3536    cdef gen _empty_vector(self, long n)
    3637    cdef int get_var(self, v)
    37     cdef object GEN_to_str(self, GEN g)
    3838    cdef GEN toGEN(self, x, int i) except NULL   
    3939    cdef GEN integer_matrix_GEN(self, mpz_t** B, Py_ssize_t nr, Py_ssize_t nc) except <GEN>0
    4040    cdef GEN integer_matrix_permuted_for_hnf_GEN(self, mpz_t** B, Py_ssize_t nr, Py_ssize_t nc) except <GEN>0
  • sage/libs/pari/gen.pyx

    diff -r 12663152c470 -r f6e6a9e6973d sage/libs/pari/gen.pyx
    a b  
    412412            sage_free(<void*> self.b)
    413413
    414414    def __repr__(self):
    415         return P.GEN_to_str(self.g)
     415        _sig_on
     416        return P.new_gen_to_string(self.g)
    416417
    417418    def __hash__(self):
    418         return hash(P.GEN_to_str(self.g))
     419        _sig_on
     420        return hash(P.new_gen_to_string(self.g))
    419421
    420422    def _testclass(self):
    421423        import test
     
    14351437
    14361438
    14371439    ###########################################
     1440    # Comparisons (from PARI)
     1441    ###########################################
     1442
     1443    def gequal(gen a, b):
     1444        r"""
     1445        Check whether `a` and `b` are equal using PARI's ``gequal``.
     1446       
     1447        EXAMPLES::
     1448           
     1449            sage: a = pari(1); b = pari(1.0); c = pari('"some_string"')
     1450            sage: a.gequal(a)
     1451            True
     1452            sage: b.gequal(b)
     1453            True
     1454            sage: c.gequal(c)
     1455            True
     1456            sage: a.gequal(b)
     1457            True
     1458            sage: a.gequal(c)
     1459            False
     1460       
     1461        WARNING: this relation is not transitive::
     1462           
     1463            sage: a = pari('[0]'); b = pari(0); c = pari('[0,0]')
     1464            sage: a.gequal(b)
     1465            True
     1466            sage: b.gequal(c)
     1467            True
     1468            sage: a.gequal(c)
     1469            False
     1470        """
     1471        global t0
     1472        t0GEN(b)
     1473        _sig_on
     1474        ret = gequal(a.g, t0)
     1475        _sig_off
     1476        return ret != 0
     1477
     1478    def gequal_long(gen a, long b):
     1479        r"""
     1480        Check whether `a` is equal to the ``long int`` `b` using PARI's ``gequalsg``.
     1481       
     1482        EXAMPLES::
     1483           
     1484            sage: a = pari(1); b = pari(2.0); c = pari('3*matid(3)')
     1485            sage: a.gequal_long(1)
     1486            True
     1487            sage: a.gequal_long(-1)
     1488            False
     1489            sage: a.gequal_long(0)
     1490            False
     1491            sage: b.gequal_long(2)
     1492            True
     1493            sage: b.gequal_long(-2)
     1494            False
     1495            sage: c.gequal_long(3)
     1496            True
     1497            sage: c.gequal_long(-3)
     1498            False
     1499        """
     1500        _sig_on
     1501        ret = gequalsg(b, a.g)
     1502        _sig_off
     1503        return ret != 0
     1504   
     1505
     1506    ###########################################
    14381507    # arith1.c
    14391508    ###########################################
    14401509    def isprime(gen self, flag=0):
     
    21822251        _sig_on
    21832252        c = GENtostr(self.g)
    21842253        v = self.new_gen(strtoGENstr(c))
    2185         free(c)
     2254        pari_free(c)
    21862255        return v
    21872256
    21882257
     
    83188387        _sig_off
    83198388        return g
    83208389
     8390    cdef object new_gen_to_string(self, GEN x):
     8391        """
     8392        Converts a gen to a Python string, free the \*entire\* stack and call
     8393        _sig_off. This is meant to be used in place of new_gen().
     8394        """
     8395        cdef char* c
     8396        cdef int n
     8397        c = GENtostr(x)
     8398        s = str(c)
     8399        pari_free(c)
     8400        global mytop, avma
     8401        avma = mytop
     8402        _sig_off
     8403        return s
     8404
    83218405    cdef void clear_stack(self):
    83228406        """
    83238407        Clear the entire PARI stack and call _sig_off.
     
    86948778    cdef _an_element_c_impl(self):  # override this in Cython
    86958779        return self.PARI_ZERO
    86968780
    8697 # Commented out by John Cremona 2008-09-06 -- never used and confusing.
    8698 #
    8699 #     def new_with_prec(self, s, long precision=0):
    8700 #         r"""
    8701 #         pari.new_with_prec(self, s, precision) creates s as a PARI gen
    8702 #         with at least \code{precision} decimal \emph{digits} of precision.
    8703 #         """
    8704 #         global prec
    8705 #         cdef unsigned long old_prec
    8706 #         old_prec = prec
    8707 #         if not precision:
    8708 #             precision = prec
    8709 #         self.set_real_precision(precision)
    8710 #         x = self(s)
    8711 #         self.set_real_precision(old_prec)
    8712 #         return x
    8713        
    87148781    def new_with_bits_prec(self, s, long precision):
    87158782        r"""
    87168783        pari.new_with_bits_prec(self, s, precision) creates s as a PARI
     
    87388805            return fetch_user_var(s)
    87398806        return -1
    87408807
    8741 
    8742     ############################################################
    8743     # conversion between GEN and string types
    8744     # Note that string --> GEN evaluates the string in PARI,
    8745     # where GEN_to_str returns a Python string.
    8746     ############################################################
    8747     cdef object GEN_to_str(self, GEN g):
    8748         cdef char* c
    8749         cdef int n
    8750         _sig_off
    8751         _sig_on
    8752         c = GENtostr(g)
    8753         _sig_off
    8754         s = str(c)
    8755         free(c)
    8756         return s
    8757 
    8758 
    87598808    ############################################################
    87608809    # Initialization
    87618810    ############################################################
     
    87898838        global diffptr, num_primes
    87908839        if M <= num_primes:
    87918840            return
    8792         #if not silent:
    8793         #    print "Extending PARI prime table up to %s"%M
    8794         free(<void*> diffptr)
     8841        pari_free(<void*> diffptr)
    87958842        num_primes = M
    87968843        diffptr = initprimes(M)
    87978844