[BACK]Return to pari_ftab.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_pari

File: [local] / OpenXM / src / ox_pari / pari_ftab.c (download)

Revision 1.5, Wed Aug 26 06:03:31 2020 UTC (3 years, 8 months ago) by noro
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +34 -35 lines

Changed pari-2.3.4 with pari-2.11.4.
Updated ox_pari for the new PARI library.

#include "ox_pari.h"

/* type=1 : one num/poly/mat arg with prec */
/* type=2 : 1starg=num/poly/mat arg, 2ndarg(int) */
/* type=3 : one GEN, return ulong */

struct parif parif_tab[] = {
/* num/num */
  {"abs",gabs,1},
  {"erfc",gerfc,1},
  {"arg",garg,1},
  {"isqrt",sqrtint,1},
  {"gamma",ggamma,1},
  {"zeta",gzeta,1},
  {"floor",gfloor,1},
  {"frac",gfrac,1},
  {"imag",gimag,1},
  {"conj",gconj,1},
  {"ceil",gceil,1},
  {"denom",denom,1},
  {"numer",numer,1},
  {"lngamma",glngamma,1},
  {"logagm",glog,1},
  {"classno",classno,1},
  {"dilog",dilog,1},
  {"discf",nfdisc,1},
  {"nextprime",nextprime,1},
  {"eintg1",eint1,1},
  {"eta",eta,1},
  {"gamh",ggamd,1},
  {"hclassno",hclassno,1},

  /* num/array */
  {"binary",binaire,1},
  {"factor",factor,1},
  {"cf",gcf,1},
  {"divisors",divisors,1},
  {"smallfact",factor,1},

  /* poly/poly */
  {"centerlift",centerlift,1},
  {"content",content,1},

  /* poly/array */
  {"galois",polgalois,1},
  {"roots",roots,1},
  {"factpol",factor,1},

  /* mat/mat */
  {"adj",adj,1},
  {"lll",lll,1},
  {"lllgen",lllgen,1},
  {"lllgram",lllgram,1},
  {"lllgramgen",lllgramgen,1},
  {"lllgramint",lllgramint,1},
  {"lllgramkerim",lllgramkerim,1},
  {"lllgramkerimgen",lllgramkerimgen,1},
  {"lllint",lllint,1},
  {"lllkerim",lllkerim,1},
  {"lllkerimgen",lllkerimgen,1},
  {"trans",gtrans,1},
  {"eigen",eigen,1},
  {"hermite",hnf,1},
  {"mat",gtomat,1},
  {"hess",hess,1},
  {"ker",ker,1},
  {"keri",keri,1},
  {"kerint",kerint,1},

  /* mat/poly */
  {"det",det,1},
  {"det2",det2,1},

  {"factorint",factorint,2,0},
  {"isprime",gisprime,2,0},
  {"disc",poldisc0,2,-1},

  {"bigomega",(GEN(*)())bigomega,3},
  {"issqfree",(GEN(*)())issquarefree,3},
  {"isfund",(GEN(*)())isfundamental,3},
  {"ispsp",(GEN(*)())BPSW_psp,3}, // miller-rabin

#if 1
  /* not examined yet */
  {"image",image,1},
  {"image2",image2,1},
  {"indexrank",indexrank,1},
  {"indsort",indexsort,1},
  {"initalg",initalg,1},
  {"jacobi",jacobi,1},
  {"jell",jell,1},
  {"length",(GEN(*)())glength,1},
  {"lexsort",lexsort,1},
  {"lift",lift,1},
  {"lindep",lindep,1},
  {"modreverse",polymodrecip,1},
  {"norm",gnorm,1},
  {"norml2",gnorml2,1},
  {"numdiv",numbdiv,1},
  {"omega",(GEN(*)())omega,1},
  {"order",order,1},
  {"pnqn",pnqn,1},
  {"psi",gpsi,1},
  {"quadgen",quadgen    ,1},
  {"quadpoly",quadpoly    ,1},
  {"recip",polrecip       ,1},
  {"redreal",redreal       ,1},
  {"regula",quadregulator  ,1},
  {"rhoreal",rhoreal       ,1},
  {"sigma",sumdiv,1},
  {"signat",qfsign,1},
  {"simplify",simplify,1},
  {"smith",smith,1},
  {"smith2",smith2,1},
  {"sort",sort,1},
  {"sqr",gsqr,1},
  {"sqred",qfgaussred,1},
  {"sqrt",gsqrt,1},
  {"supplement",suppl,1},
  {"trace",gtrace,1},
  {"trunc",gtrunc,1},
  {"unit",quadunit,1},
#endif

   /* obsolete or useless */
#if 0
  {"reorder",reorder  ,1},
  {"phi",phi,1},
  {"primroot",gener,1},
  {"wf",wf,1},
  {"wf2",wf2,1},
  {"ordred",ordred,1},
  {"mu",gmu,1},
  {"matsize",matsize,1},
  {"real",greal,1},
  {"round",ground,1},
  {"vec",gtovec,1},
  {"reverse",recip  ,1},
  {"polred",polred,1},
  {"polred2",polred2,1},
  {"smalldiscf",smalldiscf,1},
  {"smallpolred",smallpolred,1},
  {"smallpolred2",smallpolred2,1},
#endif
};

struct parif *search_parif(char *name)
{
  int tablen,i;

  tablen = sizeof(parif_tab)/sizeof(struct parif);
  for ( i = 0; i < tablen; i++ ) {
    if ( !strcmp(parif_tab[i].name,name) )
      return &parif_tab[i];
  }
  return 0;
}