Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
/* Copyright (C) 2000 The PARI group.12This file is part of the PARI/GP package.34PARI/GP is free software; you can redistribute it and/or modify it under the5terms of the GNU General Public License as published by the Free Software6Foundation; either version 2 of the License, or (at your option) any later7version. It is distributed in the hope that it will be useful, but WITHOUT8ANY WARRANTY WHATSOEVER.910Check the License for details. You should have received a copy of it, along11with the package; see the file 'COPYING'. If not, write to the Free Software12Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */1314/* For compatibility with older PARI versions */15#define nbessel ybessel16#define ZXX_to_Kronecker RgXX_to_Kronecker17#define ZXX_to_Kronecker_spec RgXX_to_Kronecker_spec18#define perf qfperfection19#define rootpadic polrootspadic20#define rootsof1 nfrootsof121#define rootsof1_kannan nfrootsof122#define hash_str2 hash_str23#define Strtex strtex24#define Strprintf strprintf25#define Strchr pari_strchr26#define Strexpand strexpand27#define LOG2 M_LN228#define truecoeff truecoef29#define polcoeff0 polcoef30#define polcoeff_i polcoef_i31#define factorcantor0 factormod032#define factcantor factmod33#define matsolvemod0 matsolvemod34#define rootmod2 polrootsmod35#define rootmod polrootsmod36#define resultant_all RgX_resultant_all37#define vecbinome vecbinomial38#define Xadic_lindep lindep_Xadic39#define padic_lindep lindep_padic40#define ZM_ker_ratlift ZM_ker41#define keri ZM_ker42/* Following obsoleted in 2.9.* (2016) */43#define absi_factor absZ_factor44#define absi_factor_limit absZ_factor_limit45#define absi_cmp abscmpii46#define absr_cmp abscmprr47#define absi_equal absequalii48#define anell ellan49#define anellsmall ellanQ_zv50#define leading_term leading_coeff51#define constant_term constant_coeff52#define concat gconcat53#define concat1 gconcat154#define mathell ellheightmatrix55#define ghell ellheight5657/* Following obsoleted in 2.7.* (2014) */58#define mpexp1 mpexpm159#define ggamd ggammah60#define gach gacosh61#define gash gasinh62#define gath gatanh63#define gch gcosh64#define gsh gsinh65#define gth gtanh66#define recip serreverse67#define gcmpX gequalX68#define ZM_hnfremdiv ZM_hnfdivrem69#define rnfidealhermite rnfidealhnf70#define rnfelementabstorel rnfeltabstorel71#define rnfelementreltoabs rnfeltreltoabs72#define rnfelementdown rnfeltdown73#define rnfelementup rnfeltup74#define exp_Ir expIr75#define vecbezout gcdext076#define vecbezoutres polresultantext77#define init_primepointer init_primepointer_geq78#define ellap0(e,p,flag) ellap(e,p)79#define apell2(e,p) ellap(e,p)80#define geulerphi eulerphi81#define numbdiv numdiv82#define gnumbdiv numdiv83#define gsumdivk sumdivk84#define gnextprime nextprime85#define gprecprime precprime86#define leftright_pow_fold gen_pow_fold87#define leftright_pow_u_fold gen_powu_fold88#define subell ellsub89#define addell elladd90#define powell ellmul91#define ggval gvaluation92#define stackmalloc stack_malloc93#define listcreate mklist9495/* Following obsoleted in 2.5.* (2011) */96#define fprintferr err_printf97#define msgTIMER timer_printf98#define TIMER timer_delay99#define TIMERread timer_get100#define TIMERstart timer_start101#define rnfinitalg rnfinit102#define ordell ellordinate103#define gcmp0 gequal0104#define gcmp1 gequal1105#define gcmp_1 gequalm1106#define nfsmith nfsnf107#define certifybuchall bnfcertify108#define greffe(x,y,z) (RgX_to_ser(x,y))109#define newbloc newblock110#define killbloc killblock111#define taille2 gsizebyte112#define taille gsizeword113#define polymodrecip modreverse114#define primedec idealprimedec115#define initalg nfinit116#define initalgred nfinitred117#define initalgred2 nfinitred2118#define initell ellinit119#define smallinitell smallellinit120#define isunit bnfisunit121#define zideallog ideallog122#define ideallllred idealred0123#define ideal_two_elt idealtwoelt124#define ideal_two_elt2 idealtwoelt2125#define ideal_two_elt0 idealtwoelt0126#define gregula quadregulator127#define gfundunit quadunit128#define minideal(x,y,z,t) idealmin(x,y,z)129#define idealhermite idealhnf130#define srgcd(x) RgX_gcd(x)131#define discf(x) nfdisc(x)132#define discsr(x) poldisc0((x),-1)133#define factorpadic4 factorpadic134#define smith2 smithall135#define gsmith2 gsmithall136#define derivpol RgX_deriv137#define gpmalloc pari_malloc138#define gprealloc pari_realloc139#define gpfree pari_free140#define pariprintf pari_printf141#define pariputc pari_putc142#define pariputs pari_puts143#define pariflush pari_flush144145/* Following deprecated for a long time now, obsoleted in 2.3.* (2007) */146#ifdef PARI_OLD_NAMES147#define apell ellap148#define gscalsmat scalarmat_s149#define sqred qfgaussred150#define signat qfsign151#define infile pari_infile152#define errfile pari_errfile153#define logfile pari_logfile154#define voir dbgGEN155#define pointch ellchangepoint156#define coordch ellchangecurve157#define Flx_rand random_Flx158#define FpX_rand random_FpX159#define galois polgalois160#define sindexlexsort indexlexsort161#define sindexsort indexsort162#define sindexrank indexrank163#define decomp Z_factor164#define gmodulcp gmodulo165#define forcecopy gcopy166#define lseriesell elllseries167#define uissquarerem uissquareall168#define Z_issquarerem Z_issquareall169#define gissquarerem gissquareall170#define gcarrecomplet gissquareall171#define gcarreparfait gissquare172#define rnfhermitebasis rnfhnfbasis173#define wf weberf174#define wf1 weberf1175#define wf2 weberf2176#define coefs_to_col mkcoln177#define coefs_to_int mkintn178#define coefs_to_pol mkpoln179#define coefs_to_vec mkvecn180#define localreduction elllocalred181#define idmat matid182#define globalreduction ellglobalred183#define taniyama(e) elltaniyama((e),precdl)184#define chinois chinese185#define binome binomial186#define egalii equalii187#define gegal gequal188#define gegalgs gequalgs189#define gegalsg gequalsg190#define gzero gen_0191#define gun gen_1192#define gdeux gen_2193#define realzero real_0194#define realzero_bit real_0_bit195#define realun real_1196#define realmun real_m1197#define gen2str GENtostr198#define gpui gpow199#define gpuigs gpowgs200#define classno3 hclassno201#define strtoGEN gp_read_str202#define flisexpr gp_read_str203#define flisseq gp_read_str204#define lisseq readseq205#define lisGEN gp_read_stream206#define lisexpr readseq207#define permute numtoperm208#define permuteInv permtonum209#define evallgef(x) 0210#define lgef lg211#define setlgef setlg212#define leadingcoeff(x) (pollead((x),-1))213#define poldivres poldivrem214#define nfdivres nfdivrem215#define gred gcopy216#define pvaluation Z_pvalrem217#define svaluation u_lvalrem218#define isprincipalrayall bnrisprincipal219#define rayclassno bnrclassno220#define rayclassnolist bnrclassnolist221#define idealhermite2 idealhnf0222#define gener_Fp pgener_Fp223#define gener_Fl pgener_Fl224#define cyclo polcyclo225#define tchebi polchebyshev1226#define legendre pollegendre227#define subcyclo polsubcyclo228#define leftright_pow gen_pow229#define leftright_pow_u gen_powu230231#define apprgen padicappr232#define apprgen9 padicappr233#define factmod9 factorff234#define ggrandocp ggrando235#define glogagm glog236#define logagm mplog237#define mpsqrtz gopgz(absr,(x),(y))238#define adduumod Fl_add239#define subuumod Fl_sub240#define muluumod Fl_mul241#define divuumod Fl_div242#define powuumod Fl_powu243#define invumod Fl_inv244#define invsmod Fl_inv_signed245#define mpinvmod Fp_inv246#define powmodulo Fp_pow247#define mpsqrtmod Fp_sqrt248#define mpsqrtnmod Fp_sqrtn249#define mpsqrt sqrtr250#define mpsqrtn sqrtnr251#define resii remii252#define resis remis253#define ressi remsi254#define resss remss255#define resiiz remiiz256#define resisz remisz257#define ressiz remsiz258#define resssz remssz259#define gres grem260#define lres lrem261#define gdivise gdvd262#define divise dvdii263#define mpdivis dvdiiz264#define mpdivisis dvdisz265#define mpent mpfloor266#define mpentz mpfloorz267#define mpnegz(x,y) \268STMT_START {pari_sp _av=avma;mpaff(mpneg(x),y);avma=_av;} STMT_END269#define mpabsz(x,y) \270STMT_START {pari_sp _av=avma;mpaff(mpabs(x),y);avma=_av;} STMT_END271#define absrz(x,z) mpabsz((x),(z))272#define negrz(x,z) mpnegz((x),(z))273274#define err pari_err275#define init pari_init276277#define zero (long)gen_0278#define un (long)gen_1279#define deux (long)gen_2280#define lhalf (long)ghalf281282/* removed GEN subtypes */283#define t_FRACN t_FRAC284#define t_RFRACN t_RFRAC285#define is_frac_t(t) ( (t) == t_FRAC )286#define is_rfrac_t(t) ( (t) == t_RFRAC )287288/*casts*/289#define labsi (long)absi290#define labsr (long)absr291#define lach (long)gacosh292#define lacos (long)gacos293#define ladd (long)gadd294#define laddgs (long)gaddgs295#define laddii (long)addii296#define laddir (long)addir297#define laddis (long)addis298#define laddrr (long)addrr299#define laddsg (long)gaddsg300#define laddsi (long)addsi301#define laddrs (long)addrs302#define laddsr (long)addsr303#define ladj (long)adj304#define larg (long)garg305#define lash (long)gasinh306#define lasin (long)gasin307#define lassmat (long)matcompanion308#define latan (long)gatan309#define lath (long)gatanh310#define lbezout (long)bezout311#define lbinome (long)binomial312#define lcaract (long)caract313#define lcaradj (long)caradj314#define lceil (long)gceil315#define lch (long)gcosh316#define lchangevar (long)changevar317#define lclone (long)gclone318#define lconcat (long)gconcat319#define lconj (long)gconj320#define lcontent (long)content321#define lcopy (long)gcopy322#define lcos (long)gcos323#define lcvtoi (long)gcvtoi324#define lderiv (long)deriv325#define ldet2 (long)det2326#define ldet (long)det327#define ldeuc (long)gdeuc328#define ldiscsr (long)discsr329#define ldiventgs (long)gdiventgs330#define ldiventsg (long)gdiventsg331#define ldivgs (long)gdivgs332#define ldivii (long)divii333#define ldivir (long)divir334#define ldivis (long)divis335#define ldivmod (long)gdivmod336#define ldivri (long)divri337#define ldivrr (long)divrr338#define ldivrs (long)divrs339#define ldivsg (long)gdivsg340#define ldivsi (long)divsi341#define ldivsr (long)divsr342#define ldvmdii (long)dvmdii343#define ldvmdis (long)dvmdis344#define ldvmdsi (long)dvmdsi345#define lexp (long)gexp346#define lfibo (long)fibo347#define lfloor (long)gfloor348#define lfrac (long)gfrac349#define lgamd (long)ggammah350#define lgamma (long)ggamma351#define lgauss (long)gauss352#define lgcd (long)ggcd353#define lgetg (long)cgetg354#define lgeti (long)cgeti355#define lgetp (long)cgetp356#define lgetr (long)cgetr357#define licopy (long)icopy358#define limag (long)gimag359#define linteg (long)integ360#define linv (long)ginv361#define linvmat (long)RgM_inv362#define linvmod (long)ginvmod363#define llegendre (long)legendre364#define llift (long)lift365#define llngamma (long)glngamma366#define llog (long)glog367#define lmaxgs (long)gmaxgs368#define lmax (long)gmax369#define lmaxsg (long)gmaxsg370#define lmings (long)gmings371#define lmin (long)gmin372#define lminsg (long)gminsg373#define lmodgs (long)gmodgs374#define lmodii (long)modii375#define lmod (long)gmod376#define lmodsg (long)gmodsg377#define lmodsi (long)modsi378#define lmodulcp (long)gmodulo379#define lmodulo (long)gmodulo380#define lmpabs (long)mpabs381#define lmpadd (long)mpadd382#define lmpcos (long)mpcos383#define lmpdiv (long)mpdiv384#define lmpent (long)mpent385#define lmpeuler (long)mpeuler386#define lmpexp1 (long)mpexpm1387#define lmpexp (long)mpexp388#define lmpfact (long)mpfact389#define lmplog (long)mplog390#define lmpmul (long)mpmul391#define lmpneg (long)mpneg392#define lmppgcd (long)mppgcd393#define lmppi (long)mppi394#define lmpshift (long)mpshift395#define lmpsin (long)mpsin396#define lmpsqrt (long)mpsqrt397#define lmpsub (long)mpsub398#define lmptrunc (long)mptrunc399#define lmul2n (long)gmul2n400#define lmulgs (long)gmulgs401#define lmulii (long)mulii402#define lmulir (long)mulir403#define lmulis (long)mulis404#define lmul (long)gmul405#define lmulri (long)mulri406#define lmulrr (long)mulrr407#define lmulrs (long)mulrs408#define lmulsg (long)gmulsg409#define lmulsi (long)mulsi410#define lmulsr (long)mulsr411#define lmulss (long)mulss412#define lnegi (long)negi413#define lneg (long)gneg414#define lnegr (long)negr415#define lnorml2 (long)gnorml2416#define lnorm (long)gnorm417#define lpile (long)gerepile418#define lpilecopy (long)gerepilecopy419#define lpileupto (long)gerepileupto420#define lpileuptoint (long)gerepileuptoint421#define lpileuptoleaf (long)gerepileuptoleaf422#define lpoleval (long)poleval423#define lpowgs (long)gpowgs424#define lprec (long)gprec425#define lpsi (long)gpsi426#define lpuigs (long)gpuigs427#define lpui (long)gpui428#define lquadgen (long)quadgen429#define lquadpoly (long)quadpoly430#define lracine (long)sqrtint431#define lrcopy (long)rcopy432#define lreal (long)greal433#define lrecip (long)recip434#define lred (long)gred435#define lremii (long)remii436#define lrem (long)grem437#define lrndtoi (long)grndtoi438#define lroots (long)roots439#define lscalmat (long)scalarmat440#define lscalsmat (long)scalarmat_s441#define lsh (long)gsinh442#define lshifti (long)shifti443#define lshift (long)gshift444#define lshiftr (long)shiftr445#define lsin (long)gsin446#define lsqri (long)sqri447#define lsqr (long)gsqr448#define lsqrt (long)gsqrt449#define lstoi (long)stoi450#define lsub (long)gsub451#define lsubgs (long)gsubgs452#define lsubii (long)subii453#define lsubir (long)subir454#define lsubis (long)subis455#define lsubres (long)resultant456#define lsubri (long)subri457#define lsubrr (long)subrr458#define lsubrs (long)subrs459#define lsubst (long)gsubst460#define lsubsg (long)gsubsg461#define lsubsi (long)subsi462#define lsubsr (long)subsr463#define ltan (long)gtan464#define ltchebi (long)polchebyshev465#define lth (long)gtanh466#define ltrace (long)gtrace467#define ltrans (long)gtrans468#define ltrunc (long)gtrunc469#define lutoi (long)utoi470#define lround (long)ground471#define ldiv (long)gdiv472#endif473474475