Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
/* Copyright (C) 1999-2004 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/*******************************************************************/15/* */16/* DECLARATIONS of PUBLIC FUNCTIONS */17/* */18/*******************************************************************/19#include "parinf.h"2021/* black box groups */22struct bb_group23{24GEN (*mul)(void *E, GEN, GEN);25GEN (*pow)(void *E, GEN, GEN);26GEN (*rand)(void *E);27ulong (*hash)(GEN);28int (*equal)(GEN,GEN);29int (*equal1)(GEN);30GEN (*easylog)(void *E, GEN, GEN, GEN);31};3233/* black box fields */34struct bb_field35{36GEN (*red)(void *E ,GEN);37GEN (*add)(void *E ,GEN, GEN);38GEN (*mul)(void *E ,GEN, GEN);39GEN (*neg)(void *E ,GEN);40GEN (*inv)(void *E ,GEN);41int (*equal0)(GEN);42GEN (*s)(void *E, long);43};4445/* black box algebra */46struct bb_algebra47{48GEN (*red)(void *E, GEN x);49GEN (*add)(void *E, GEN x, GEN y);50GEN (*sub)(void *E, GEN x, GEN y);51GEN (*mul)(void *E, GEN x, GEN y);52GEN (*sqr)(void *E, GEN x);53GEN (*one)(void *E);54GEN (*zero)(void *E);55};5657/* black box ring */58struct bb_ring59{60GEN (*add)(void *E, GEN x, GEN y);61GEN (*mul)(void *E, GEN x, GEN y);62GEN (*sqr)(void *E, GEN x);63};6465/* OBSOLETE */66GEN buchimag(GEN D, GEN c1, GEN c2, GEN gCO);67GEN buchreal(GEN D, GEN gsens, GEN c1, GEN c2, GEN gRELSUP, long prec);68GEN zidealstar(GEN nf, GEN x);69GEN zidealstarinit(GEN nf, GEN x);70GEN zidealstarinitgen(GEN nf, GEN x);71GEN factmod(GEN f, GEN p);72void mpbern(long n, long prec);73GEN simplefactmod(GEN f, GEN p);74void listkill(GEN list);75GEN isprincipalforce(GEN bnf,GEN x);76GEN isprincipalgen(GEN bnf, GEN x);77GEN isprincipalgenforce(GEN bnf,GEN x);7879/* F2v.c */8081GEN F2Ms_ker(GEN M, long nrows);82GEN F2Ms_to_F2m(GEN M, long nrows);83GEN F2c_to_ZC(GEN x);84GEN F2c_to_mod(GEN x);85GEN F2m_F2c_gauss(GEN a, GEN b);86GEN F2m_F2c_invimage(GEN A, GEN y);87GEN F2m_F2c_mul(GEN x, GEN y);88GEN F2m_deplin(GEN x);89ulong F2m_det(GEN x);90ulong F2m_det_sp(GEN x);91GEN F2m_gauss(GEN a, GEN b);92GEN F2m_inv(GEN x);93GEN F2m_invimage(GEN A, GEN B);94GEN F2m_ker(GEN x);95GEN F2m_ker_sp(GEN x, long deplin);96GEN F2m_mul(GEN x, GEN y);97GEN F2m_powu(GEN x, ulong n);98long F2m_rank(GEN x);99GEN F2m_row(GEN x, long j);100GEN F2m_rowslice(GEN x, long a, long b);101GEN F2m_to_F2Ms(GEN M);102GEN F2m_to_Flm(GEN z);103GEN F2m_to_ZM(GEN z);104GEN F2m_to_mod(GEN z);105GEN F2m_transpose(GEN x);106void F2v_add_inplace(GEN x, GEN y);107void F2v_and_inplace(GEN x, GEN y);108ulong F2v_dotproduct(GEN x, GEN y);109int F2v_equal0(GEN a);110ulong F2v_hamming(GEN H);111void F2v_negimply_inplace(GEN x, GEN y);112void F2v_or_inplace(GEN x, GEN y);113GEN F2v_slice(GEN x, long a, long b);114GEN F2v_to_Flv(GEN x);115GEN matid_F2m(long n);116117/* F2x.c */118119GEN F2x_F2xq_eval(GEN Q, GEN x, GEN T);120GEN F2x_F2xqV_eval(GEN P, GEN V, GEN T);121GEN F2x_Frobenius(GEN T);122GEN F2x_1_add(GEN y);123GEN F2x_add(GEN x, GEN y);124GEN F2x_deflate(GEN x0, long d);125GEN F2x_degfact(GEN f);126long F2x_degree(GEN x);127GEN F2x_deriv(GEN x);128GEN F2x_divrem(GEN x, GEN y, GEN *pr);129ulong F2x_eval(GEN P, ulong x);130void F2x_even_odd(GEN p, GEN *pe, GEN *po);131GEN F2x_extgcd(GEN a, GEN b, GEN *ptu, GEN *ptv);132GEN F2x_gcd(GEN a, GEN b);133GEN F2x_get_red(GEN T);134GEN F2x_halfgcd(GEN a, GEN b);135int F2x_issquare(GEN a);136GEN F2x_matFrobenius(GEN T);137GEN F2x_mul(GEN x, GEN y);138GEN F2x_recip(GEN T);139GEN F2x_rem(GEN x, GEN y);140GEN F2x_shift(GEN y, long d);141GEN F2x_sqr(GEN x);142GEN F2x_sqrt(GEN x);143GEN F2x_to_F2v(GEN x, long n);144GEN F2x_to_F2xX(GEN z, long sv);145GEN F2x_to_Flx(GEN x);146GEN F2x_to_ZX(GEN x);147long F2x_valrem(GEN x, GEN *Z);148GEN F2xC_to_FlxC(GEN v);149GEN F2xC_to_ZXC(GEN x);150GEN F2xV_to_F2m(GEN v, long n);151void F2xV_to_FlxV_inplace(GEN v);152void F2xV_to_ZXV_inplace(GEN v);153GEN F2xX_F2x_add(GEN x, GEN y);154GEN F2xX_F2x_mul(GEN P, GEN U);155GEN F2xX_add(GEN x, GEN y);156GEN F2xX_deriv(GEN z);157GEN F2xX_renormalize(GEN /*in place*/ x, long lx);158GEN F2xX_to_Kronecker(GEN P, long d);159GEN F2xX_to_FlxX(GEN B);160GEN F2xX_to_ZXX(GEN B);161GEN F2xX_to_F2xC(GEN x, long N, long sv);162GEN F2xXV_to_F2xM(GEN v, long n, long sv);163GEN F2xXC_to_ZXXC(GEN B);164GEN F2xY_F2xq_evalx(GEN P, GEN x, GEN T);165GEN F2xY_F2xqV_evalx(GEN P, GEN x, GEN T);166long F2xY_degreex(GEN b);167GEN F2xn_inv(GEN f, long e);168GEN F2xn_red(GEN a, long n);169GEN F2xq_Artin_Schreier(GEN a, GEN T);170GEN F2xq_autpow(GEN x, long n, GEN T);171GEN F2xq_conjvec(GEN x, GEN T);172GEN F2xq_div(GEN x,GEN y,GEN T);173GEN F2xq_inv(GEN x, GEN T);174GEN F2xq_invsafe(GEN x, GEN T);175GEN F2xq_log(GEN a, GEN g, GEN ord, GEN T);176GEN F2xq_matrix_pow(GEN y, long n, long m, GEN P);177GEN F2xq_mul(GEN x, GEN y, GEN pol);178GEN F2xq_order(GEN a, GEN ord, GEN T);179GEN F2xq_pow(GEN x, GEN n, GEN pol);180GEN F2xq_pow_init(GEN x, GEN n, long k, GEN T);181GEN F2xq_pow_table(GEN R, GEN n, GEN T);182GEN F2xq_powu(GEN x, ulong n, GEN pol);183GEN F2xq_powers(GEN x, long l, GEN T);184GEN F2xq_sqr(GEN x,GEN pol);185GEN F2xq_sqrt(GEN a, GEN T);186GEN F2xq_sqrt_fast(GEN c, GEN sqx, GEN T);187GEN F2xq_sqrtn(GEN a, GEN n, GEN T, GEN *zeta);188ulong F2xq_trace(GEN x, GEN T);189GEN F2xqX_F2xq_mul(GEN P, GEN U, GEN T);190GEN F2xqX_F2xq_mul_to_monic(GEN P, GEN U, GEN T);191GEN F2xqX_F2xqXQ_eval(GEN Q, GEN x, GEN S, GEN T);192GEN F2xqX_F2xqXQV_eval(GEN P, GEN V, GEN S, GEN T);193GEN F2xqX_disc(GEN x, GEN T);194GEN F2xqX_divrem(GEN x, GEN y, GEN T, GEN *pr);195GEN F2xqX_extgcd(GEN x, GEN y, GEN T, GEN *ptu, GEN *ptv);196GEN F2xqX_gcd(GEN a, GEN b, GEN T);197GEN F2xqX_get_red(GEN S, GEN T);198GEN F2xqX_halfgcd(GEN x, GEN y, GEN T);199GEN F2xqX_invBarrett(GEN T, GEN Q);200long F2xqX_ispower(GEN f, long k, GEN T, GEN *pt_r);201GEN F2xqX_mul(GEN x, GEN y, GEN T);202GEN F2xqX_normalize(GEN z, GEN T);203GEN F2xqX_powu(GEN x, ulong n, GEN T);204GEN F2xqX_red(GEN z, GEN T);205GEN F2xqX_rem(GEN x, GEN S, GEN T);206GEN F2xqX_resultant(GEN x, GEN y, GEN T);207GEN F2xqX_sqr(GEN x, GEN T);208GEN F2xqXQ_inv(GEN x, GEN S, GEN T);209GEN F2xqXQ_invsafe(GEN x, GEN S, GEN T);210GEN F2xqXQ_mul(GEN x, GEN y, GEN S, GEN T);211GEN F2xqXQ_sqr(GEN x, GEN S, GEN T);212GEN F2xqXQ_pow(GEN x, GEN n, GEN S, GEN T);213GEN F2xqXQ_powers(GEN x, long l, GEN S, GEN T);214GEN F2xqXQ_autpow(GEN aut, long n, GEN S, GEN T);215GEN F2xqXQ_auttrace(GEN aut, long n, GEN S, GEN T);216GEN F2xqXQV_red(GEN z, GEN S, GEN T);217GEN Flm_to_F2m(GEN x);218GEN Flv_to_F2v(GEN x);219GEN Flx_to_F2x(GEN x);220GEN FlxC_to_F2xC(GEN x);221GEN FlxX_to_F2xX(GEN B);222GEN FlxXC_to_F2xXC(GEN B);223GEN Kronecker_to_F2xqX(GEN z, GEN T);224GEN Rg_to_F2xq(GEN x, GEN T);225GEN RgM_to_F2m(GEN x);226GEN RgV_to_F2v(GEN x);227GEN RgX_to_F2x(GEN x);228GEN Z_to_F2x(GEN x, long v);229GEN ZM_to_F2m(GEN x);230GEN ZV_to_F2v(GEN x);231GEN ZX_to_F2x(GEN x);232GEN ZXX_to_F2xX(GEN B, long v);233GEN const_F2v(long m);234GEN gener_F2xq(GEN T, GEN *po);235const struct bb_field *get_F2xq_field(void **E, GEN T);236GEN monomial_F2x(long d, long vs);237GEN pol1_F2xX(long v, long sv);238GEN polx_F2xX(long v, long sv);239GEN random_F2xqX(long d1, long v, GEN T);240241/* F2xqE.c */242243GEN F2x_Teichmuller(GEN P, long n);244GEN F2xq_ellcard(GEN a2, GEN a6, GEN T);245GEN F2xq_ellgens(GEN a2, GEN a6, GEN ch, GEN D, GEN m, GEN T);246GEN F2xq_ellgroup(GEN a2, GEN a6, GEN N, GEN T, GEN *pt_m);247void F2xq_elltwist(GEN a, GEN a6, GEN T, GEN *pt_a, GEN *pt_a6);248GEN F2xqE_add(GEN P, GEN Q, GEN a2, GEN T);249GEN F2xqE_changepoint(GEN x, GEN ch, GEN T);250GEN F2xqE_changepointinv(GEN x, GEN ch, GEN T);251GEN F2xqE_dbl(GEN P, GEN a2, GEN T);252GEN F2xqE_log(GEN a, GEN b, GEN o, GEN a2, GEN T);253GEN F2xqE_mul(GEN P, GEN n, GEN a2, GEN T);254GEN F2xqE_neg(GEN P, GEN a2, GEN T);255GEN F2xqE_order(GEN z, GEN o, GEN a2, GEN T);256GEN F2xqE_sub(GEN P, GEN Q, GEN a2, GEN T);257GEN F2xqE_tatepairing(GEN t, GEN s, GEN m, GEN a2, GEN T);258GEN F2xqE_weilpairing(GEN t, GEN s, GEN m, GEN a2, GEN T);259const struct bb_group * get_F2xqE_group(void **E, GEN a2, GEN a6, GEN T);260GEN RgE_to_F2xqE(GEN x, GEN T);261GEN random_F2xqE(GEN a2, GEN a6, GEN T);262263/* F3v.c */264265GEN F3m_ker(GEN x);266GEN F3m_ker_sp(GEN x, long deplin);267GEN F3m_mul(GEN x, GEN y);268GEN F3m_row(GEN x, long j);269GEN F3m_to_Flm(GEN z);270GEN F3m_to_ZM(GEN z);271GEN F3m_transpose(GEN x);272GEN F3v_to_Flv(GEN x);273ulong F3v_coeff(GEN x,long v);274void F3v_clear(GEN x, long v);275void F3v_set(GEN x, long v, ulong n);276GEN Flm_to_F3m(GEN x);277GEN Flv_to_F3v(GEN x);278GEN RgM_to_F3m(GEN x);279GEN RgV_to_F3v(GEN x);280GEN ZM_to_F3m(GEN x);281GEN ZV_to_F3v(GEN x);282GEN zero_F3m_copy(long m, long n);283GEN zero_F3v(long m);284285/* Fle.c */286287ulong Fl_elldisc(ulong a4, ulong a6, ulong p);288ulong Fl_elldisc_pre(ulong a4, ulong a6, ulong p, ulong pi);289ulong Fl_ellj(ulong a4, ulong a6, ulong p);290void Fl_ellj_to_a4a6(ulong j, ulong p, ulong *pt_a4, ulong *pt_a6);291GEN Fl_ellptors(ulong l, ulong N, ulong a4, ulong a6, ulong p);292void Fl_elltwist(ulong a4, ulong a6, ulong p, ulong *pt_a4, ulong *pt_a6);293void Fl_elltwist_disc(ulong a4, ulong a6, ulong D, ulong p, ulong *pt_a4, ulong *pt_a6);294GEN Fle_add(GEN P, GEN Q, ulong a4, ulong p);295GEN Fle_dbl(GEN P, ulong a4, ulong p);296GEN Fle_changepoint(GEN x, GEN ch, ulong p);297GEN Fle_changepointinv(GEN x, GEN ch, ulong p);298GEN Fle_log(GEN a, GEN b, GEN o, ulong a4, ulong p);299GEN Fle_mul(GEN P, GEN n, ulong a4, ulong p);300GEN Fle_mulu(GEN P, ulong n, ulong a4, ulong p);301GEN Fle_order(GEN z, GEN o, ulong a4, ulong p);302GEN Fle_sub(GEN P, GEN Q, ulong a4, ulong p);303ulong Fle_tatepairing(GEN P, GEN Q, ulong m, ulong a4, ulong p);304GEN Fle_to_Flj(GEN P);305ulong Fle_weilpairing(GEN P, GEN Q, ulong m, ulong a4, ulong p);306GEN Flj_add_pre(GEN P, GEN Q, ulong a4, ulong p, ulong pi);307GEN Flj_changepointinv_pre(GEN P, GEN ch, ulong p, ulong pi);308GEN Flj_dbl_pre(GEN P, ulong a4, ulong p, ulong pi);309GEN Flj_mulu_pre(GEN P, ulong n, ulong a4, ulong p, ulong pi);310GEN Flj_neg(GEN Q, ulong p);311GEN Flj_to_Fle(GEN P, ulong p);312GEN Flj_to_Fle_pre(GEN P, ulong p, ulong pi);313GEN FljV_factorback_pre(GEN P, GEN L, ulong a4, ulong p, ulong pi);314GEN random_Fle(ulong a4, ulong a6, ulong p);315GEN random_Fle_pre(ulong a4, ulong a6, ulong p, ulong pi);316GEN random_Flj_pre(ulong a4, ulong a6, ulong p, ulong pi);317318/* Flv.c */319320GEN Flc_to_ZC(GEN z);321GEN Flc_to_ZC_inplace(GEN z);322GEN Flm_Flc_gauss(GEN a, GEN b, ulong p);323GEN Flm_Flc_invimage(GEN mat, GEN y, ulong p);324GEN Flm_adjoint(GEN A, ulong p);325GEN Flm_deplin(GEN x, ulong p);326ulong Flm_det(GEN x, ulong p);327ulong Flm_det_sp(GEN x, ulong p);328GEN Flm_gauss(GEN a, GEN b, ulong p);329GEN Flm_intersect(GEN x, GEN y, ulong p);330GEN Flm_intersect_i(GEN x, GEN y, ulong p);331GEN Flm_inv(GEN x, ulong p);332GEN Flm_invimage(GEN m, GEN v, ulong p);333GEN Flm_ker(GEN x, ulong p);334GEN Flm_ker_sp(GEN x, ulong p, long deplin);335long Flm_rank(GEN x, ulong p);336GEN Flm_to_ZM(GEN z);337GEN Flm_to_ZM_inplace(GEN z);338GEN Flv_to_ZV(GEN z);339340/* Flx.c */341342GEN Fl_to_Flx(ulong x, long sv);343int Fl2_equal1(GEN x);344GEN Fl2_inv_pre(GEN x, ulong D, ulong p, ulong pi);345GEN Fl2_mul_pre(GEN x, GEN y, ulong D, ulong p, ulong pi);346ulong Fl2_norm_pre(GEN x, ulong D, ulong p, ulong pi);347GEN Fl2_pow_pre(GEN x, GEN n, ulong D, ulong p, ulong pi);348GEN Fl2_sqr_pre(GEN x, ulong D, ulong p, ulong pi);349GEN Fl2_sqrtn_pre(GEN a, GEN n, ulong D, ulong p, ulong pi, GEN *zeta);350GEN Flm_to_FlxV(GEN x, long sv);351GEN Flm_to_FlxX(GEN x, long v,long w);352GEN Flv_Flm_polint(GEN xa, GEN ya, ulong p, long vs);353GEN Flv_inv(GEN x, ulong p);354void Flv_inv_inplace(GEN x, ulong p);355void Flv_inv_pre_inplace(GEN x, ulong p, ulong pi);356GEN Flv_inv_pre(GEN x, ulong p, ulong pi);357GEN Flv_invVandermonde(GEN L, ulong den, ulong p);358GEN Flv_polint(GEN xa, GEN ya, ulong p, long vs);359ulong Flv_prod(GEN v, ulong p);360ulong Flv_prod_pre(GEN x, ulong p, ulong pi);361GEN Flv_roots_to_pol(GEN a, ulong p, long vs);362GEN Flv_to_Flx(GEN x, long vs);363GEN Flx_Fl_add(GEN y, ulong x, ulong p);364GEN Flx_Fl_mul(GEN y, ulong x, ulong p);365GEN Flx_Fl_mul_to_monic(GEN y, ulong x, ulong p);366GEN Flx_Fl_sub(GEN y, ulong x, ulong p);367GEN Flx_Fl2_eval_pre(GEN x, GEN y, ulong D, ulong p, ulong pi);368GEN Flx_Flv_multieval(GEN P, GEN v, ulong p);369GEN Flx_Flxq_eval(GEN f,GEN x,GEN T,ulong p);370GEN Flx_FlxqV_eval(GEN f,GEN x,GEN T,ulong p);371GEN Flx_Frobenius(GEN T, ulong p);372GEN Flx_Laplace(GEN x, ulong p);373GEN Flx_Newton(GEN P, long n, ulong p);374GEN Flx_add(GEN x, GEN y, ulong p);375GEN Flx_blocks(GEN P, long n, long m);376GEN Flx_deflate(GEN x0, long d);377GEN Flx_deriv(GEN z, ulong p);378GEN Flx_diff1(GEN P, ulong p);379GEN Flx_digits(GEN x, GEN T, ulong p);380GEN Flx_div_by_X_x(GEN a, ulong x, ulong p, ulong *rem);381GEN Flx_divrem(GEN x, GEN y, ulong p, GEN *pr);382GEN Flx_double(GEN y, ulong p);383int Flx_equal(GEN V, GEN W);384ulong Flx_eval(GEN x, ulong y, ulong p);385ulong Flx_eval_powers_pre(GEN x, GEN y, ulong p, ulong pi);386ulong Flx_eval_pre(GEN x, ulong y, ulong p, ulong pi);387GEN Flx_extgcd(GEN a, GEN b, ulong p, GEN *ptu, GEN *ptv);388ulong Flx_extresultant(GEN a, GEN b, ulong p, GEN *ptU, GEN *ptV);389GEN Flx_fromNewton(GEN P, ulong p);390GEN Flx_gcd(GEN a, GEN b, ulong p);391GEN Flx_get_red(GEN T, ulong p);392GEN Flx_halfgcd(GEN a, GEN b, ulong p);393GEN Flx_halve(GEN y, ulong p);394GEN Flx_inflate(GEN x0, long d);395GEN Flx_integ(GEN z, ulong p);396GEN Flx_invBarrett(GEN T, ulong p);397GEN Flx_invLaplace(GEN x, ulong p);398int Flx_is_squarefree(GEN z, ulong p);399int Flx_is_smooth(GEN g, long r, ulong p);400GEN Flx_matFrobenius(GEN T, ulong p);401GEN Flx_mod_Xn1(GEN T, ulong n, ulong p);402GEN Flx_mod_Xnm1(GEN T, ulong n, ulong p);403GEN Flx_mul(GEN x, GEN y, ulong p);404GEN Flx_neg(GEN x, ulong p);405GEN Flx_neg_inplace(GEN x, ulong p);406GEN Flx_normalize(GEN z, ulong p);407GEN Flx_powu(GEN x, ulong n, ulong p);408GEN Flx_recip(GEN x);409GEN Flx_red(GEN z, ulong p);410GEN Flx_rem(GEN x, GEN y, ulong p);411GEN Flx_renormalize(GEN x, long l);412GEN Flx_rescale(GEN P, ulong h, ulong p);413ulong Flx_resultant(GEN a, GEN b, ulong p);414GEN Flx_shift(GEN a, long n);415GEN Flx_splitting(GEN p, long k);416GEN Flx_sqr(GEN x, ulong p);417GEN Flx_sub(GEN x, GEN y, ulong p);418GEN Flx_translate1(GEN P, ulong p);419GEN Flx_translate1_basecase(GEN P, ulong p);420GEN Flx_to_Flv(GEN x, long N);421GEN Flx_to_FlxX(GEN z, long v);422GEN Flx_to_ZX(GEN z);423GEN Flx_to_ZX_inplace(GEN z);424GEN Flx_triple(GEN y, ulong p);425long Flx_val(GEN x);426long Flx_valrem(GEN x, GEN *Z);427GEN FlxC_FlxqV_eval(GEN x, GEN v, GEN T, ulong p);428GEN FlxC_Flxq_eval(GEN x, GEN F, GEN T, ulong p);429GEN FlxC_eval_powers_pre(GEN z, GEN x, ulong p, ulong pi);430GEN FlxC_neg(GEN x, ulong p);431GEN FlxC_sub(GEN x, GEN y, ulong p);432GEN FlxC_to_ZXC(GEN x);433GEN FlxM_Flx_add_shallow(GEN x, GEN y, ulong p);434GEN FlxM_eval_powers_pre(GEN z, GEN x, ulong p, ulong pi);435GEN FlxM_neg(GEN x, ulong p);436GEN FlxM_sub(GEN x, GEN y, ulong p);437GEN FlxM_to_ZXM(GEN z);438GEN FlxT_red(GEN z, ulong p);439GEN FlxV_Flc_mul(GEN V, GEN W, ulong p);440GEN FlxV_Flv_multieval(GEN P, GEN v, ulong p);441GEN FlxV_Flx_fromdigits(GEN x, GEN T, ulong p);442GEN FlxV_prod(GEN V, ulong p);443GEN FlxV_red(GEN z, ulong p);444GEN FlxV_to_Flm(GEN v, long n);445GEN FlxV_to_FlxX(GEN x, long v);446GEN FlxV_to_ZXV(GEN x);447void FlxV_to_ZXV_inplace(GEN v);448GEN Flxn_exp(GEN h, long e, ulong p);449GEN Flxn_expint(GEN h, long e, ulong p);450GEN Flxn_inv(GEN f, long e, ulong p);451GEN Flxn_mul(GEN a, GEN b, long n, ulong p);452GEN Flxn_sqr(GEN a, long n, ulong p);453GEN Flxn_red(GEN a, long n);454GEN Flxq_autpow(GEN x, ulong n, GEN T, ulong p);455GEN Flxq_autpowers(GEN x, ulong n, GEN T, ulong p);456GEN Flxq_autsum(GEN x, ulong n, GEN T, ulong p);457GEN Flxq_auttrace(GEN x, ulong n, GEN T, ulong p);458GEN Flxq_charpoly(GEN x, GEN T, ulong p);459GEN Flxq_conjvec(GEN x, GEN T, ulong p);460GEN Flxq_div(GEN x, GEN y, GEN T, ulong p);461GEN Flxq_inv(GEN x,GEN T,ulong p);462GEN Flxq_invsafe(GEN x, GEN T, ulong p);463int Flxq_issquare(GEN x, GEN T, ulong p);464int Flxq_is2npower(GEN x, long n, GEN T, ulong p);465GEN Flxq_log(GEN a, GEN g, GEN ord, GEN T, ulong p);466GEN Flxq_lroot(GEN a, GEN T, long p);467GEN Flxq_lroot_fast(GEN a, GEN sqx, GEN T, long p);468GEN Flxq_matrix_pow(GEN y, long n, long m, GEN P, ulong l);469GEN Flxq_minpoly(GEN x, GEN T, ulong p);470GEN Flxq_mul(GEN x, GEN y, GEN T, ulong p);471ulong Flxq_norm(GEN x, GEN T, ulong p);472GEN Flxq_order(GEN a, GEN ord, GEN T, ulong p);473GEN Flxq_pow(GEN x, GEN n, GEN T, ulong p);474GEN Flxq_pow_init(GEN x, GEN n, long k, GEN T, ulong p);475GEN Flxq_pow_table(GEN R, GEN n, GEN T, ulong p);476GEN Flxq_powu(GEN x, ulong n, GEN T, ulong p);477GEN Flxq_powers(GEN x, long l, GEN T, ulong p);478GEN Flxq_sqr(GEN y,GEN T,ulong p);479GEN Flxq_sqrt(GEN a, GEN T, ulong p);480GEN Flxq_sqrtn(GEN a, GEN n, GEN T, ulong p, GEN *zetan);481ulong Flxq_trace(GEN x, GEN T, ulong p);482GEN FlxqC_Flxq_mul(GEN x, GEN y, GEN T, ulong p);483GEN FlxqM_Flxq_mul(GEN x, GEN y, GEN T, ulong p);484GEN FlxqV_dotproduct(GEN x, GEN y, GEN T, ulong p);485ulong Rg_to_F2(GEN x);486ulong Rg_to_Fl(GEN x, ulong p);487GEN Rg_to_Flxq(GEN x, GEN T, ulong p);488GEN RgX_to_Flx(GEN x, ulong p);489GEN RgXV_to_FlxV(GEN x, ulong p);490GEN Z_to_Flx(GEN x, ulong p, long sv);491GEN ZX_to_Flx(GEN x, ulong p);492GEN ZXV_to_FlxV(GEN v, ulong p);493GEN ZXT_to_FlxT(GEN z, ulong p);494GEN gener_Flxq(GEN T, ulong p, GEN *o);495const struct bb_field *get_Flxq_field(void **E, GEN T, ulong p);496const struct bb_group *get_Flxq_star(void **E, GEN T, ulong p);497GEN monomial_Flx(ulong a, long d, long vs);498GEN random_Flx(long d1, long v, ulong p);499GEN zero_FlxC(long n, long sv);500GEN zero_FlxM(long r, long c, long sv);501GEN zlx_translate1(GEN P, ulong p, long e);502GEN zx_to_Flx(GEN x, ulong p);503504/* FlxX.c */505506GEN FlxX_Fl_mul(GEN x, ulong y, ulong p);507GEN FlxX_Flx_add(GEN y, GEN x, ulong p);508GEN FlxX_Flx_mul(GEN x, GEN y, ulong p);509GEN FlxX_Flx_sub(GEN y, GEN x, ulong p);510GEN FlxX_Laplace(GEN x, ulong p);511GEN FlxX_add(GEN P, GEN Q, ulong p);512GEN FlxX_blocks(GEN P, long n, long m, long vs);513GEN FlxX_deriv(GEN z, ulong p);514GEN FlxX_double(GEN x, ulong p);515GEN FlxX_invLaplace(GEN x, ulong p);516GEN FlxX_neg(GEN x, ulong p);517GEN FlxX_renormalize(GEN x, long lx);518GEN FlxX_shift(GEN a, long n, long vs);519GEN FlxX_sub(GEN P, GEN Q, ulong p);520GEN FlxX_swap(GEN x, long n, long ws);521GEN FlxX_to_Flm(GEN v, long n);522GEN FlxX_to_Flx(GEN f);523GEN FlxX_to_FlxC(GEN x, long N, long sv);524GEN FlxX_to_ZXX(GEN B);525GEN FlxX_translate1(GEN P, long p, long n);526GEN FlxX_triple(GEN x, ulong p);527GEN FlxXC_to_ZXXC(GEN B);528GEN FlxXM_to_ZXXM(GEN B);529GEN FlxXV_to_FlxM(GEN v, long n, long sv);530GEN FlxXn_red(GEN a, long n);531GEN FlxY_Flx_div(GEN x, GEN y, ulong p);532GEN FlxY_Flx_translate(GEN P, GEN c, ulong p);533GEN FlxY_Flxq_evalx(GEN P, GEN x, GEN T, ulong p);534GEN FlxY_FlxqV_evalx(GEN P, GEN x, GEN T, ulong p);535long FlxY_degreex(GEN b);536ulong FlxY_eval_powers_pre(GEN pol, GEN ypowers, GEN xpowers, ulong p, ulong pi);537GEN FlxY_evalx(GEN Q, ulong x, ulong p);538GEN FlxY_evalx_powers_pre(GEN pol, GEN ypowers, ulong p, ulong pi);539GEN FlxYqq_pow(GEN x, GEN n, GEN S, GEN T, ulong p);540GEN FlxqV_roots_to_pol(GEN V, GEN T, ulong p, long v);541GEN FlxqX_FlxqXQ_eval(GEN Q, GEN x, GEN S, GEN T, ulong p);542GEN FlxqX_FlxqXQV_eval(GEN P, GEN V, GEN S, GEN T, ulong p);543GEN FlxqX_Flxq_mul(GEN P, GEN U, GEN T, ulong p);544GEN FlxqX_Flxq_mul_to_monic(GEN P, GEN U, GEN T, ulong p);545GEN FlxqX_Newton(GEN P, long n, GEN T, ulong p);546GEN FlxqX_divrem(GEN x, GEN y, GEN T, ulong p, GEN *pr);547GEN FlxqX_disc(GEN x, GEN T, ulong p);548GEN FlxqX_dotproduct(GEN x, GEN y, GEN T, ulong p);549GEN FlxqX_extgcd(GEN a, GEN b, GEN T, ulong p, GEN *ptu, GEN *ptv);550GEN FlxqX_fromNewton(GEN P, GEN T, ulong p);551GEN FlxqX_gcd(GEN P, GEN Q, GEN T, ulong p);552GEN FlxqX_get_red(GEN S, GEN T, ulong p);553GEN FlxqX_halfgcd(GEN x, GEN y, GEN T, ulong p);554GEN FlxqX_invBarrett(GEN T, GEN Q, ulong p);555GEN FlxqX_mul(GEN x, GEN y, GEN T, ulong p);556GEN FlxqX_normalize(GEN z, GEN T, ulong p);557GEN FlxqX_powu(GEN V, ulong n, GEN T, ulong p);558GEN FlxqX_red(GEN z, GEN T, ulong p);559GEN FlxqX_rem(GEN x, GEN y, GEN T, ulong p);560GEN FlxqX_resultant(GEN x, GEN y, GEN T, ulong p);561GEN FlxqX_safegcd(GEN P, GEN Q, GEN T, ulong p);562GEN FlxqX_saferesultant(GEN a, GEN b, GEN T, ulong p);563GEN FlxqX_sqr(GEN x, GEN T, ulong p);564GEN FlxqXQ_div(GEN x, GEN y, GEN S, GEN T, ulong p);565GEN FlxqXQ_inv(GEN x, GEN S, GEN T, ulong p);566GEN FlxqXQ_invsafe(GEN x, GEN S, GEN T, ulong p);567GEN FlxqXQ_matrix_pow(GEN x, long n, long m, GEN S, GEN T, ulong p);568GEN FlxqXQ_minpoly(GEN x, GEN S, GEN T, ulong p);569GEN FlxqXQ_mul(GEN x, GEN y, GEN S, GEN T, ulong p);570GEN FlxqXQ_pow(GEN x, GEN n, GEN S, GEN T, ulong p);571GEN FlxqXQ_powu(GEN x, ulong n, GEN S, GEN T, ulong p);572GEN FlxqXQ_powers(GEN x, long n, GEN S, GEN T, ulong p);573GEN FlxqXQ_sqr(GEN x, GEN S, GEN T, ulong p);574GEN FlxqXQ_autpow(GEN x, long n, GEN S, GEN T, ulong p);575GEN FlxqXQ_autsum(GEN aut, long n, GEN S, GEN T, ulong p);576GEN FlxqXQ_auttrace(GEN x, ulong n, GEN S, GEN T, ulong p);577GEN FlxqXV_prod(GEN V, GEN T, ulong p);578GEN FlxqXn_expint(GEN h, long e, GEN T, ulong p);579GEN FlxqXn_inv(GEN f, long e, GEN T, ulong p);580GEN FlxqXn_mul(GEN a, GEN b, long n, GEN T, ulong p);581GEN FlxqXn_sqr(GEN a, long n, GEN T, ulong p);582GEN Fly_to_FlxY(GEN B, long v);583GEN Kronecker_to_FlxqX(GEN z, GEN T, ulong p);584GEN RgX_to_FlxqX(GEN x, GEN T, ulong p);585const struct bb_algebra *get_FlxqXQ_algebra(void **E, GEN S, GEN T, ulong p);586GEN pol1_FlxX(long v, long sv);587GEN polx_FlxX(long v, long sv);588GEN random_FlxqX(long d1, long v, GEN T, ulong p);589GEN zlxX_translate1(GEN P, long p, long e, long n);590GEN zxX_to_FlxX(GEN B, ulong p);591GEN zxX_to_Kronecker(GEN P, GEN Q);592593/* FlxqE.c */594595GEN Flxq_ellcard(GEN a4, GEN a6, GEN T, ulong p);596GEN Flxq_ellgens(GEN a4, GEN a6, GEN ch, GEN D, GEN m, GEN T, ulong p);597GEN Flxq_ellgroup(GEN a4, GEN a6, GEN N, GEN T, ulong p, GEN *pt_m);598void Flxq_elltwist(GEN a, GEN a6, GEN T, ulong p, GEN *pt_a, GEN *pt_a6);599GEN Flxq_ellj(GEN a4, GEN a6, GEN T, ulong p);600void Flxq_ellj_to_a4a6(GEN j, GEN T, ulong p, GEN *pt_a4, GEN *pt_a6);601GEN FlxqE_add(GEN P, GEN Q, GEN a4, GEN T, ulong p);602GEN FlxqE_changepoint(GEN x, GEN ch, GEN T, ulong p);603GEN FlxqE_changepointinv(GEN x, GEN ch, GEN T, ulong p);604GEN FlxqE_dbl(GEN P, GEN a4, GEN T, ulong p);605GEN FlxqE_log(GEN a, GEN b, GEN o, GEN a4, GEN T, ulong p);606GEN FlxqE_mul(GEN P, GEN n, GEN a4, GEN T, ulong p);607GEN FlxqE_neg(GEN P, GEN T, ulong p);608GEN FlxqE_order(GEN z, GEN o, GEN a4, GEN T, ulong p);609GEN FlxqE_sub(GEN P, GEN Q, GEN a4, GEN T, ulong p);610GEN FlxqE_tatepairing(GEN t, GEN s, GEN m, GEN a4, GEN T, ulong p);611GEN FlxqE_weilpairing(GEN t, GEN s, GEN m, GEN a4, GEN T, ulong p);612GEN ZXX_to_FlxX(GEN B, ulong p, long v);613GEN ZXXT_to_FlxXT(GEN z, ulong p, long v);614GEN ZXXV_to_FlxXV(GEN V, ulong p, long v);615const struct bb_group * get_FlxqE_group(void **E, GEN a4, GEN a6, GEN T, ulong p);616GEN RgE_to_FlxqE(GEN x, GEN T, ulong p);617GEN random_FlxqE(GEN a4, GEN a6, GEN T, ulong p);618619/* FpE.c */620621long Fl_elltrace(ulong a4, ulong a6, ulong p);622long Fl_elltrace_CM(long CM, ulong a4, ulong a6, ulong p);623GEN Fp_ellcard(GEN a4, GEN a6, GEN p);624GEN Fp_elldivpol(GEN a4, GEN a6, long n, GEN p);625GEN Fp_ellgens(GEN a4, GEN a6, GEN ch, GEN D, GEN m, GEN p);626GEN Fp_ellgroup(GEN a4, GEN a6, GEN N, GEN p, GEN *pt_m);627GEN Fp_ellj(GEN a4, GEN a6, GEN p);628int Fp_elljissupersingular(GEN j, GEN p);629void Fp_elltwist(GEN a4, GEN a6, GEN p, GEN *pt_a4, GEN *pt_a6);630GEN Fp_ffellcard(GEN a4, GEN a6, GEN q, long n, GEN p);631GEN FpE_add(GEN P, GEN Q, GEN a4, GEN p);632GEN FpE_changepoint(GEN x, GEN ch, GEN p);633GEN FpE_changepointinv(GEN x, GEN ch, GEN p);634GEN FpE_dbl(GEN P, GEN a4, GEN p);635GEN FpE_log(GEN a, GEN b, GEN o, GEN a4, GEN p);636GEN FpE_mul(GEN P, GEN n, GEN a4, GEN p);637GEN FpE_neg(GEN P, GEN p);638GEN FpE_order(GEN z, GEN o, GEN a4, GEN p);639GEN FpE_sub(GEN P, GEN Q, GEN a4, GEN p);640GEN FpE_to_FpJ(GEN P);641GEN FpE_to_mod(GEN P, GEN p);642GEN FpE_tatepairing(GEN t, GEN s, GEN m, GEN a4, GEN p);643GEN FpE_weilpairing(GEN t, GEN s, GEN m, GEN a4, GEN p);644GEN FpJ_add(GEN P, GEN Q, GEN a4, GEN p);645GEN FpJ_dbl(GEN P, GEN a4, GEN p);646GEN FpJ_mul(GEN P, GEN n, GEN a4, GEN p);647GEN FpJ_neg(GEN Q, GEN p);648GEN FpJ_to_FpE(GEN P, GEN p);649GEN FpXQ_ellcard(GEN a4, GEN a6, GEN T, GEN p);650GEN FpXQ_elldivpol(GEN a4, GEN a6, long n, GEN T, GEN p);651GEN FpXQ_ellgens(GEN a4, GEN a6, GEN ch, GEN D, GEN m, GEN T, GEN p);652GEN FpXQ_ellgroup(GEN a4, GEN a6, GEN N, GEN T, GEN p, GEN *pt_m);653GEN FpXQ_ellj(GEN a4, GEN a6, GEN T, GEN p);654int FpXQ_elljissupersingular(GEN j, GEN T, GEN p);655void FpXQ_elltwist(GEN a4, GEN a6, GEN T, GEN p, GEN *pt_a4, GEN *pt_a6);656GEN FpXQE_add(GEN P, GEN Q, GEN a4, GEN T, GEN p);657GEN FpXQE_changepoint(GEN x, GEN ch, GEN T, GEN p);658GEN FpXQE_changepointinv(GEN x, GEN ch, GEN T, GEN p);659GEN FpXQE_dbl(GEN P, GEN a4, GEN T, GEN p);660GEN FpXQE_log(GEN a, GEN b, GEN o, GEN a4, GEN T, GEN p);661GEN FpXQE_mul(GEN P, GEN n, GEN a4, GEN T, GEN p);662GEN FpXQE_neg(GEN P, GEN T, GEN p);663GEN FpXQE_order(GEN z, GEN o, GEN a4, GEN T, GEN p);664GEN FpXQE_sub(GEN P, GEN Q, GEN a4, GEN T, GEN p);665GEN FpXQE_tatepairing(GEN t, GEN s, GEN m, GEN a4, GEN T, GEN p);666GEN FpXQE_weilpairing(GEN t, GEN s, GEN m, GEN a4, GEN T, GEN p);667GEN Fq_elldivpolmod(GEN a4, GEN a6, long n, GEN h, GEN T, GEN p);668GEN RgE_to_FpE(GEN x, GEN p);669GEN RgE_to_FpXQE(GEN x, GEN T, GEN p);670const struct bb_group * get_FpE_group(void **E, GEN a4, GEN a6, GEN p);671const struct bb_group * get_FpXQE_group(void **E, GEN a4, GEN a6, GEN T, GEN p);672GEN elltrace_extension(GEN t, long n, GEN p);673GEN random_FpE(GEN a4, GEN a6, GEN p);674GEN random_FpXQE(GEN a4, GEN a6, GEN T, GEN p);675676/* FpX.c */677678int Fp_issquare(GEN x, GEN p);679GEN Fp_FpX_sub(GEN x, GEN y, GEN p);680GEN Fp_FpXQ_log(GEN a, GEN g, GEN ord, GEN T, GEN p);681GEN FpV_FpM_polint(GEN xa, GEN ya, GEN p, long vs);682GEN FpV_inv(GEN x, GEN p);683GEN FpV_invVandermonde(GEN L, GEN den, GEN p);684GEN FpV_polint(GEN xa, GEN ya, GEN p, long v);685GEN FpV_roots_to_pol(GEN V, GEN p, long v);686GEN FpX_Fp_add(GEN x, GEN y, GEN p);687GEN FpX_Fp_add_shallow(GEN y,GEN x,GEN p);688GEN FpX_Fp_div(GEN x, GEN y, GEN p);689GEN FpX_Fp_mul(GEN x, GEN y, GEN p);690GEN FpX_Fp_mul_to_monic(GEN y,GEN x,GEN p);691GEN FpX_Fp_mulspec(GEN y,GEN x,GEN p,long ly);692GEN FpX_Fp_sub(GEN x, GEN y, GEN p);693GEN FpX_Fp_sub_shallow(GEN y,GEN x,GEN p);694GEN FpX_FpV_multieval(GEN P, GEN xa, GEN p);695GEN FpX_FpXQ_eval(GEN f,GEN x,GEN T,GEN p);696GEN FpX_FpXQV_eval(GEN f,GEN x,GEN T,GEN p);697GEN FpX_FpXV_multirem(GEN P, GEN xa, GEN p);698GEN FpX_Frobenius(GEN T, GEN p);699GEN FpX_Laplace(GEN x, GEN p);700GEN FpX_Newton(GEN P, long n, GEN p);701GEN FpX_add(GEN x, GEN y, GEN p);702GEN FpX_center(GEN x, GEN p, GEN pov2);703GEN FpX_center_i(GEN T, GEN p, GEN pov2);704GEN FpX_chinese_coprime(GEN x,GEN y,GEN Tx,GEN Ty,GEN Tz,GEN p);705GEN FpX_convol(GEN x, GEN y, GEN p);706GEN FpX_deriv(GEN x, GEN p);707GEN FpX_digits(GEN x, GEN y, GEN p);708GEN FpX_disc(GEN x, GEN p);709GEN FpX_div_by_X_x(GEN a, GEN x, GEN p, GEN *r);710GEN FpX_divrem(GEN x, GEN y, GEN p, GEN *pr);711GEN FpX_divu(GEN x, ulong y, GEN p);712GEN FpX_dotproduct(GEN x, GEN y, GEN p);713GEN FpX_eval(GEN x,GEN y,GEN p);714GEN FpX_extgcd(GEN x, GEN y, GEN p, GEN *ptu, GEN *ptv);715GEN FpX_fromNewton(GEN P, GEN p);716GEN FpX_gcd(GEN x, GEN y, GEN p);717GEN FpX_gcd_check(GEN x, GEN y, GEN p);718GEN FpX_get_red(GEN T, GEN p);719GEN FpX_halve(GEN y, GEN p);720GEN FpX_halfgcd(GEN x, GEN y, GEN p);721GEN FpX_integ(GEN x, GEN p);722GEN FpX_invBarrett(GEN T, GEN p);723GEN FpX_invLaplace(GEN x, GEN p);724int FpX_is_squarefree(GEN f, GEN p);725long FpX_ispower(GEN f, ulong k, GEN p, GEN *pt_r);726GEN FpX_matFrobenius(GEN T, GEN p);727GEN FpX_mul(GEN x, GEN y, GEN p);728GEN FpX_mulspec(GEN a, GEN b, GEN p, long na, long nb);729GEN FpX_mulu(GEN x, ulong y, GEN p);730GEN FpX_neg(GEN x, GEN p);731GEN FpX_normalize(GEN z, GEN p);732GEN FpX_powu(GEN x, ulong n, GEN p);733GEN FpX_red(GEN z, GEN p);734GEN FpX_rem(GEN x, GEN y, GEN p);735GEN FpX_rescale(GEN P, GEN h, GEN p);736GEN FpX_resultant(GEN a, GEN b, GEN p);737GEN FpX_sqr(GEN x, GEN p);738GEN FpX_sub(GEN x, GEN y, GEN p);739long FpX_valrem(GEN x0, GEN t, GEN p, GEN *py);740GEN FpXC_FpXQ_eval(GEN Q, GEN x, GEN T, GEN p);741GEN FpXC_FpXQV_eval(GEN Q, GEN x, GEN T, GEN p);742GEN FpXM_FpXQV_eval(GEN Q, GEN x, GEN T, GEN p);743GEN FpXQ_autpow(GEN x, ulong n, GEN T, GEN p);744GEN FpXQ_autpowers(GEN aut, long f, GEN T, GEN p);745GEN FpXQ_autsum(GEN x, ulong n, GEN T, GEN p);746GEN FpXQ_auttrace(GEN x, ulong n, GEN T, GEN p);747GEN FpXQ_charpoly(GEN x, GEN T, GEN p);748GEN FpXQ_conjvec(GEN x, GEN T, GEN p);749GEN FpXQ_div(GEN x,GEN y,GEN T,GEN p);750GEN FpXQ_inv(GEN x,GEN T,GEN p);751GEN FpXQ_invsafe(GEN x, GEN T, GEN p);752int FpXQ_issquare(GEN x, GEN T, GEN p);753GEN FpXQ_log(GEN a, GEN g, GEN ord, GEN T, GEN p);754GEN FpXQ_matrix_pow(GEN y, long n, long m, GEN P, GEN l);755GEN FpXQ_minpoly(GEN x, GEN T, GEN p);756GEN FpXQ_mul(GEN y,GEN x,GEN T,GEN p);757GEN FpXQ_norm(GEN x, GEN T, GEN p);758GEN FpXQ_order(GEN a, GEN ord, GEN T, GEN p);759GEN FpXQ_pow(GEN x, GEN n, GEN T, GEN p);760GEN FpXQ_powu(GEN x, ulong n, GEN T, GEN p);761GEN FpXQ_powers(GEN x, long l, GEN T, GEN p);762GEN FpXQ_red(GEN x, GEN T, GEN p);763GEN FpXQ_sqr(GEN y, GEN T, GEN p);764GEN FpXQ_sqrt(GEN a, GEN T, GEN p);765GEN FpXQ_sqrtn(GEN a, GEN n, GEN T, GEN p, GEN *zetan);766GEN FpXQ_trace(GEN x, GEN T, GEN p);767GEN FpXQC_to_mod(GEN z, GEN T, GEN p);768GEN FpXQM_autsum(GEN x, ulong n, GEN T, GEN p);769GEN FpXT_red(GEN z, GEN p);770GEN FpXV_FpX_fromdigits(GEN x, GEN T, GEN p);771GEN FpXV_chinese(GEN A, GEN P, GEN p, GEN *pt_mod);772GEN FpXV_factorback(GEN fa, GEN e, GEN p, long v);773GEN FpXV_prod(GEN V, GEN p);774GEN FpXV_red(GEN z, GEN p);775GEN FpXn_exp(GEN x, long n, GEN p);776GEN FpXn_expint(GEN x, long n, GEN p);777GEN FpXn_inv(GEN x, long n, GEN p);778GEN FpXn_mul(GEN a, GEN b, long n, GEN p);779GEN FpXn_sqr(GEN a, long n, GEN p);780int Fq_issquare(GEN x, GEN T, GEN p);781long Fq_ispower(GEN x, GEN K, GEN T, GEN p);782GEN Fq_log(GEN a, GEN g, GEN ord, GEN T, GEN p);783GEN FqC_to_mod(GEN z, GEN T, GEN p);784GEN FqM_to_mod(GEN z, GEN T, GEN p);785GEN FqV_inv(GEN x, GEN T, GEN p);786GEN Z_to_FpX(GEN a, GEN p, long v);787GEN gener_FpXQ(GEN T, GEN p, GEN *o);788GEN gener_FpXQ_local(GEN T, GEN p, GEN L);789const struct bb_group * get_FpXQ_star(void **E, GEN T, GEN p);790const struct bb_algebra * get_FpX_algebra(void **E, GEN p, long v);791const struct bb_algebra * get_FpXQ_algebra(void **E, GEN T, GEN p);792GEN random_FpX(long d, long v, GEN p);793794/* FpX_factor.c */795796GEN F2x_ddf(GEN f);797GEN F2x_factor(GEN f);798GEN F2x_factor_squarefree(GEN f);799int F2x_is_irred(GEN f);800GEN Flx_ddf(GEN T, ulong p);801int Flx_is_irred(GEN f, ulong p);802int Flx_is_totally_split(GEN f, ulong p);803long Flx_ispower(GEN f, ulong k, ulong p, GEN *pt_r);804GEN Flx_degfact(GEN f, ulong p);805GEN Flx_factor(GEN f, ulong p);806GEN Flx_factor_squarefree(GEN f, ulong p);807long Flx_nbfact(GEN z, ulong p);808long Flx_nbfact_Frobenius(GEN T, GEN XP, ulong p);809GEN Flx_nbfact_by_degree(GEN z, long *nb, ulong p);810long Flx_nbroots(GEN f, ulong p);811ulong Flx_oneroot(GEN f, ulong p);812ulong Flx_oneroot_split(GEN f, ulong p);813GEN Flx_roots(GEN f, ulong p);814GEN Flx_rootsff(GEN P, GEN T, ulong p);815GEN FpX_ddf(GEN f, GEN p);816long FpX_ddf_degree(GEN T, GEN XP, GEN p);817GEN FpX_degfact(GEN f, GEN p);818GEN FpX_factor(GEN f, GEN p);819GEN FpX_factor_squarefree(GEN T, GEN p);820int FpX_is_irred(GEN f, GEN p);821int FpX_is_totally_split(GEN f, GEN p);822long FpX_nbfact(GEN f, GEN p);823long FpX_nbfact_Frobenius(GEN T, GEN XP, GEN p);824long FpX_nbroots(GEN f, GEN p);825GEN FpX_oneroot(GEN f, GEN p);826GEN FpX_oneroot_split(GEN fact, GEN p);827GEN FpX_roots(GEN f, GEN p);828GEN FpX_rootsff(GEN P, GEN T, GEN p);829GEN FpX_split_part(GEN f, GEN p);830831/* FpXQX_factor.c */832833GEN F2xqX_ddf(GEN S, GEN T);834GEN F2xqX_degfact(GEN S, GEN T);835GEN F2xqX_factor(GEN x, GEN T);836GEN F2xqX_factor_squarefree(GEN x, GEN T);837GEN F2xqX_roots(GEN x, GEN T);838GEN Flx_factorff_irred(GEN P, GEN Q, ulong p);839void Flx_ffintersect(GEN P,GEN Q,long n,ulong l,GEN *SP,GEN *SQ,GEN MA,GEN MB);840GEN Flx_ffisom(GEN P,GEN Q,ulong l);841GEN Flxq_ffisom_inv(GEN S,GEN Tp, ulong p);842GEN FlxqX_Frobenius(GEN S, GEN T, ulong p);843GEN FlxqX_ddf(GEN S, GEN T, ulong p);844long FlxqX_ddf_degree(GEN S, GEN XP, GEN T, ulong p);845GEN FlxqX_degfact(GEN S, GEN T, ulong p);846GEN FlxqX_factor(GEN x, GEN T, ulong p);847GEN FlxqX_factor_squarefree(GEN x, GEN T, ulong p);848long FlxqX_ispower(GEN f, ulong k, GEN T, ulong p, GEN *pt_r);849long FlxqX_is_squarefree(GEN P, GEN T, ulong p);850long FlxqX_nbfact(GEN S, GEN T, ulong p);851long FlxqX_nbfact_Frobenius(GEN S, GEN Xq, GEN T, ulong p);852long FlxqX_nbroots(GEN f, GEN T, ulong p);853GEN FlxqX_roots(GEN S, GEN T, ulong p);854GEN FlxqXQ_halfFrobenius(GEN a, GEN S, GEN T, ulong p);855GEN FpX_factorff(GEN P, GEN T, GEN p);856GEN FpX_factorff_irred(GEN P, GEN Q, GEN p);857void FpX_ffintersect(GEN P,GEN Q,long n,GEN l,GEN *SP,GEN *SQ,GEN MA,GEN MB);858GEN FpX_ffisom(GEN P,GEN Q,GEN l);859GEN FpXQ_ffisom_inv(GEN S,GEN Tp, GEN p);860GEN FpXQX_Frobenius(GEN S, GEN T, GEN p);861GEN FpXQX_ddf(GEN S, GEN T, GEN p);862long FpXQX_ddf_degree(GEN S, GEN XP, GEN T, GEN p);863GEN FpXQX_degfact(GEN S, GEN T, GEN p);864GEN FpXQX_factor(GEN x, GEN T, GEN p);865GEN FpXQX_factor_squarefree(GEN x, GEN T, GEN p);866long FpXQX_ispower(GEN f, ulong k, GEN T, GEN p, GEN *pt);867long FpXQX_nbfact(GEN u, GEN T, GEN p);868long FpXQX_nbfact_Frobenius(GEN S, GEN Xq, GEN T, GEN p);869long FpXQX_nbroots(GEN f, GEN T, GEN p);870GEN FpXQX_roots(GEN f, GEN T, GEN p);871GEN FpXQX_split_part(GEN f, GEN T, GEN p);872GEN FpXQXQ_halfFrobenius(GEN a, GEN S, GEN T, GEN p);873long FqX_is_squarefree(GEN P, GEN T, GEN p);874long FqX_ispower(GEN f, ulong k, GEN T, GEN p, GEN *pt);875long FqX_nbfact(GEN u, GEN T, GEN p);876long FqX_nbroots(GEN f, GEN T, GEN p);877GEN factorff(GEN f, GEN p, GEN a);878GEN factormod0(GEN f, GEN p,long flag);879GEN factormodDDF(GEN f, GEN D);880GEN factormodSQF(GEN f, GEN D);881int ff_parse_Tp(GEN Tp, GEN *T, GEN *p, long red);882GEN polrootsff(GEN f, GEN p, GEN T);883GEN polrootsmod(GEN f, GEN p);884GEN rootmod0(GEN f, GEN p,long flag);885886/* FpXX.c */887888GEN FpXQX_FpXQ_mul(GEN P, GEN U, GEN T, GEN p);889GEN FpXQX_FpXQXQV_eval(GEN P, GEN V, GEN S, GEN T, GEN p);890GEN FpXQX_FpXQXQ_eval(GEN P, GEN x, GEN S, GEN T, GEN p);891GEN FpXQX_digits(GEN x, GEN B, GEN T, GEN p);892GEN FpXQX_disc(GEN x, GEN T, GEN p);893GEN FpXQX_div_by_X_x(GEN a, GEN x, GEN T, GEN p, GEN *pr);894GEN FpXQX_divrem(GEN x, GEN y, GEN T, GEN p, GEN *pr);895GEN FpXQX_dotproduct(GEN x, GEN y, GEN T, GEN p);896GEN FpXQX_extgcd(GEN x, GEN y, GEN T, GEN p, GEN *ptu, GEN *ptv);897GEN FpXQX_gcd(GEN P, GEN Q, GEN T, GEN p);898GEN FpXQX_get_red(GEN S, GEN T, GEN p);899GEN FpXQX_halfgcd(GEN x, GEN y, GEN T, GEN p);900GEN FpXQX_invBarrett(GEN S, GEN T, GEN p);901GEN FpXQX_mul(GEN x, GEN y, GEN T, GEN p);902GEN FpXQX_powu(GEN x, ulong n, GEN T, GEN p);903GEN FpXQX_red(GEN z, GEN T, GEN p);904GEN FpXQX_rem(GEN x, GEN S, GEN T, GEN p);905GEN FpXQX_resultant(GEN a, GEN b, GEN T, GEN p);906GEN FpXQX_sqr(GEN x, GEN T, GEN p);907GEN FpXQX_to_mod(GEN z, GEN T, GEN p);908GEN FpXQXQ_div(GEN x,GEN y,GEN S, GEN T,GEN p);909GEN FpXQXQ_inv(GEN x, GEN S, GEN T,GEN p);910GEN FpXQXQ_invsafe(GEN x, GEN S, GEN T, GEN p);911GEN FpXQXQ_matrix_pow(GEN y, long n, long m, GEN S, GEN T, GEN p);912GEN FpXQXQ_minpoly(GEN x, GEN S, GEN T, GEN p);913GEN FpXQXQ_mul(GEN x, GEN y, GEN S, GEN T, GEN p);914GEN FpXQXQ_pow(GEN x, GEN n, GEN S, GEN T, GEN p);915GEN FpXQXQ_powers(GEN x, long n, GEN S, GEN T, GEN p);916GEN FpXQXQ_sqr(GEN x, GEN S, GEN T, GEN p);917GEN FpXQXQ_autpow(GEN aut, long n, GEN S, GEN T, GEN p);918GEN FpXQXQ_autsum(GEN aut, long n, GEN S, GEN T, GEN p);919GEN FpXQXQ_auttrace(GEN aut, long n, GEN S, GEN T, GEN p);920GEN FpXQXV_FpXQX_fromdigits(GEN x, GEN B, GEN T, GEN p);921GEN FpXQXV_prod(GEN V, GEN Tp, GEN p);922GEN FpXQXn_exp(GEN x, long n, GEN T, GEN p);923GEN FpXQXn_expint(GEN x, long n, GEN T, GEN p);924GEN FpXQXn_inv(GEN x, long n, GEN T, GEN p);925GEN FpXQXn_mul(GEN x, GEN y, long n, GEN T, GEN p);926GEN FpXQXn_sqr(GEN x, long n, GEN T, GEN p);927GEN FpXX_Fp_mul(GEN x, GEN y, GEN p);928GEN FpXX_FpX_mul(GEN x, GEN y, GEN p);929GEN FpXX_add(GEN x, GEN y, GEN p);930GEN FpXX_deriv(GEN P, GEN p);931GEN FpXX_halve(GEN P, GEN p);932GEN FpXX_integ(GEN P, GEN p);933GEN FpXX_mulu(GEN P, ulong u, GEN p);934GEN FpXX_neg(GEN x, GEN p);935GEN FpXX_red(GEN z, GEN p);936GEN FpXX_sub(GEN x, GEN y, GEN p);937GEN FpXY_FpXQ_evalx(GEN P, GEN x, GEN T, GEN p);938GEN FpXY_FpXQV_evalx(GEN P, GEN x, GEN T, GEN p);939GEN FpXY_eval(GEN Q, GEN y, GEN x, GEN p);940GEN FpXY_evalx(GEN Q, GEN x, GEN p);941GEN FpXY_evaly(GEN Q, GEN y, GEN p, long vy);942GEN FpXYQQ_pow(GEN x, GEN n, GEN S, GEN T, GEN p);943GEN FqXC_to_mod(GEN z, GEN T, GEN p);944GEN FqXM_to_mod(GEN z, GEN T, GEN p);945GEN Kronecker_to_FpXQX(GEN z, GEN pol, GEN p);946const struct bb_algebra * get_FpXQX_algebra(void **E, GEN T, GEN p, long v);947const struct bb_algebra * get_FpXQXQ_algebra(void **E, GEN S, GEN T, GEN p);948GEN random_FpXQX(long d1, long v, GEN T, GEN p);949950/* FpV.c */951952GEN Flc_Flv_mul(GEN x, GEN y, ulong p);953GEN Flc_to_mod(GEN z, ulong p);954GEN Flm_Fl_add(GEN x, ulong y, ulong p);955GEN Flm_Fl_mul(GEN y, ulong x, ulong p);956void Flm_Fl_mul_inplace(GEN y, ulong x, ulong p);957GEN Flm_Fl_mul_pre(GEN y, ulong x, ulong p, ulong pi);958GEN Flm_Fl_sub(GEN x, ulong y, ulong p);959GEN Flm_Flc_mul(GEN x, GEN y, ulong p);960GEN Flm_Flc_mul_pre(GEN x, GEN y, ulong p, ulong pi);961GEN Flm_Flc_mul_pre_Flx(GEN x, GEN y, ulong p, ulong pi, long sv);962GEN Flm_add(GEN x, GEN y, ulong p);963GEN Flm_center(GEN z, ulong p, ulong ps2);964GEN Flm_mul(GEN x, GEN y, ulong p);965GEN Flm_mul_pre(GEN x, GEN y, ulong p, ulong pi);966GEN Flm_neg(GEN y, ulong p);967GEN Flm_powers(GEN x, ulong n, ulong p);968GEN Flm_powu(GEN x, ulong n, ulong p);969GEN Flm_sub(GEN x, GEN y, ulong p);970GEN Flm_to_mod(GEN z, ulong p);971GEN Flm_transpose(GEN x);972GEN Flv_Fl_div(GEN x, ulong y, ulong p);973void Flv_Fl_div_inplace(GEN x, ulong y, ulong p);974GEN Flv_Fl_mul(GEN x, ulong y, ulong p);975void Flv_Fl_mul_inplace(GEN x, ulong y, ulong p);976void Flv_Fl_mul_part_inplace(GEN x, ulong y, ulong p, long l);977GEN Flv_add(GEN x, GEN y, ulong p);978void Flv_add_inplace(GEN x, GEN y, ulong p);979GEN Flv_center(GEN z, ulong p, ulong ps2);980ulong Flv_dotproduct(GEN x, GEN y, ulong p);981ulong Flv_dotproduct_pre(GEN x, GEN y, ulong p, ulong pi);982GEN Flv_neg(GEN v, ulong p);983void Flv_neg_inplace(GEN v, ulong p);984GEN Flv_sub(GEN x, GEN y, ulong p);985void Flv_sub_inplace(GEN x, GEN y, ulong p);986ulong Flv_sum(GEN x, ulong p);987ulong Flx_dotproduct(GEN x, GEN y, ulong p);988GEN Fp_to_mod(GEN z, GEN p);989GEN FpC_FpV_mul(GEN x, GEN y, GEN p);990GEN FpC_Fp_mul(GEN x, GEN y, GEN p);991GEN FpC_center(GEN z, GEN p, GEN pov2);992void FpC_center_inplace(GEN z, GEN p, GEN pov2);993GEN FpC_red(GEN z, GEN p);994GEN FpC_to_mod(GEN z, GEN p);995GEN FpM_add(GEN x, GEN y, GEN p);996GEN FpM_Fp_mul(GEN X, GEN c, GEN p);997GEN FpM_FpC_mul(GEN x, GEN y, GEN p);998GEN FpM_FpC_mul_FpX(GEN x, GEN y, GEN p, long v);999GEN FpM_center(GEN z, GEN p, GEN pov2);1000void FpM_center_inplace(GEN z, GEN p, GEN pov2);1001GEN FpM_mul(GEN x, GEN y, GEN p);1002GEN FpM_powu(GEN x, ulong n, GEN p);1003GEN FpM_red(GEN z, GEN p);1004GEN FpM_sub(GEN x, GEN y, GEN p);1005GEN FpM_to_mod(GEN z, GEN p);1006GEN FpMs_FpC_mul(GEN M, GEN B, GEN p);1007GEN FpMs_FpCs_solve(GEN M, GEN B, long nbrow, GEN p);1008GEN FpMs_FpCs_solve_safe(GEN M, GEN A, long nbrow, GEN p);1009GEN FpMs_leftkernel_elt(GEN M, long nbrow, GEN p);1010GEN FpC_add(GEN x, GEN y, GEN p);1011GEN FpC_sub(GEN x, GEN y, GEN p);1012GEN FpV_FpMs_mul(GEN B, GEN M, GEN p);1013GEN FpV_add(GEN x, GEN y, GEN p);1014GEN FpV_sub(GEN x, GEN y, GEN p);1015GEN FpV_dotproduct(GEN x, GEN y, GEN p);1016GEN FpV_dotsquare(GEN x, GEN p);1017GEN FpV_red(GEN z, GEN p);1018GEN FpV_to_mod(GEN z, GEN p);1019GEN FpVV_to_mod(GEN z, GEN p);1020GEN FpX_to_mod(GEN z, GEN p);1021GEN FpXC_to_mod(GEN x, GEN p);1022GEN FpXM_to_mod(GEN x, GEN p);1023GEN ZabM_ker(GEN M, GEN P, long n);1024GEN ZabM_indexrank(GEN M, GEN P, long n);1025GEN ZabM_inv(GEN M, GEN P, long n, GEN *pden);1026GEN ZabM_inv_ratlift(GEN M, GEN P, long n, GEN *pden);1027GEN ZabM_pseudoinv(GEN M, GEN P, long n, GEN *pv, GEN *den);1028GEN ZV_zMs_mul(GEN B, GEN M);1029GEN ZpMs_ZpCs_solve(GEN M, GEN B, long nbrow, GEN p, long e);1030GEN gen_FpM_Wiedemann(void *E, GEN (*f)(void*, GEN), GEN B, GEN p);1031GEN gen_ZpM_Dixon_Wiedemann(void *E, GEN (*f)(void*, GEN), GEN B, GEN p, long e);1032GEN gen_matid(long n, void *E, const struct bb_field *S);1033GEN matid_Flm(long n);1034GEN matid_F2xqM(long n, GEN T);1035GEN matid_FlxqM(long n, GEN T, ulong p);1036GEN random_Flv(long n, ulong p);1037GEN random_FpC(long d, GEN p);1038GEN random_FpV(long d, GEN p);1039GEN scalar_Flm(long s, long n);1040GEN zCs_to_ZC(GEN C, long nbrow);1041GEN zMs_to_ZM(GEN M, long nbrow);1042GEN zMs_ZC_mul(GEN M, GEN B);1043GEN ZMV_to_FlmV(GEN z, ulong m);10441045/* Hensel.c */10461047GEN Flx_Teichmuller(GEN P, ulong p, long n);1048GEN Z2_sqrt(GEN x, long e);1049GEN Zp_sqrt(GEN x, GEN p, long e);1050GEN Zp_sqrtlift(GEN b, GEN a, GEN p, long e);1051GEN Zp_sqrtnlift(GEN b, GEN n, GEN a, GEN p, long e);1052GEN ZpM_invlift(GEN M, GEN C, GEN p, long n);1053GEN ZpX_Frobenius(GEN T, GEN p, long e);1054GEN ZpX_ZpXQ_liftroot(GEN P, GEN S, GEN T, GEN p, long e);1055GEN ZpX_ZpXQ_liftroot_ea(GEN P, GEN S, GEN T, GEN p, long n, void *E,1056GEN early(void *E, GEN x, GEN q));1057GEN ZpX_liftfact(GEN pol, GEN Q, GEN pe, GEN p, long e);1058GEN ZpX_liftroot(GEN f, GEN a, GEN p, long e);1059GEN ZpX_liftroots(GEN f, GEN S, GEN p, long e);1060GEN ZpX_roots(GEN f, GEN p, long e);1061GEN ZpXQ_div(GEN a, GEN b, GEN T, GEN q, GEN p, long e);1062GEN ZpXQ_inv(GEN a, GEN T, GEN p, long e);1063GEN ZpXQ_invlift(GEN b, GEN a, GEN T, GEN p, long e);1064GEN ZpXQ_log(GEN a, GEN T, GEN p, long N);1065GEN ZpXQ_sqrt(GEN a, GEN T, GEN p, long e);1066GEN ZpXQ_sqrtnlift(GEN b, GEN n, GEN a, GEN T, GEN p, long e);1067GEN ZpXQM_prodFrobenius(GEN M, GEN T, GEN p, long e);1068GEN ZpXQX_digits(GEN x, GEN B, GEN T, GEN q, GEN p, long e);1069GEN ZpXQX_divrem(GEN x, GEN S, GEN T, GEN q, GEN p, long e, GEN *pr);1070GEN ZpXQX_liftfact(GEN pol, GEN Q, GEN T, GEN pe, GEN p, long e);1071GEN ZpXQX_liftroot(GEN f, GEN a, GEN T, GEN p, long e);1072GEN ZpXQX_liftroot_vald(GEN f, GEN a, long v, GEN T, GEN p, long e);1073GEN ZpXQX_liftroots(GEN f, GEN S, GEN T, GEN p, long e);1074GEN ZpXQX_roots(GEN F, GEN T, GEN p, long e);1075GEN Zq_sqrtnlift(GEN a, GEN n, GEN x, GEN T, GEN p, long e);1076GEN ZqX_liftfact(GEN pol, GEN Q, GEN T, GEN pe, GEN p, long e);1077GEN ZqX_liftroot(GEN f, GEN a, GEN T, GEN p, long e);1078GEN ZqX_roots(GEN F, GEN T, GEN p, long e);1079GEN gen_ZpM_Dixon(GEN F, GEN V, GEN q, GEN p, long N, void *E,1080GEN lin(void *E, GEN F, GEN d, GEN q),1081GEN invl(void *E, GEN d));1082GEN gen_ZpM_Newton(GEN x, GEN p, long n, void *E,1083GEN eval(void *E, GEN f, GEN q),1084GEN invd(void *E, GEN V, GEN v, GEN q, long M));1085GEN gen_ZpX_Dixon(GEN F, GEN V, GEN q, GEN p, long N, void *E,1086GEN lin(void *E, GEN F, GEN d, GEN q),1087GEN invl(void *E, GEN d));1088GEN gen_ZpX_Newton(GEN x, GEN p, long n, void *E,1089GEN eval(void *E, GEN f, GEN q),1090GEN invd(void *E, GEN V, GEN v, GEN q, long M));1091GEN polteichmuller(GEN P, ulong p, long n);1092GEN polhensellift(GEN pol, GEN fct, GEN p, long exp);1093ulong quadratic_prec_mask(long n);10941095/* QX_factor.c */10961097GEN QX_factor(GEN x);1098GEN ZX_factor(GEN x);1099long ZX_is_irred(GEN x);1100GEN ZX_squff(GEN f, GEN *ex);1101GEN polcyclofactors(GEN f);1102long poliscyclo(GEN f);1103long poliscycloprod(GEN f);110411051106/* RgV.c */11071108GEN Rg_RgC_sub(GEN a, GEN x);1109GEN RgC_Rg_add(GEN x, GEN y);1110GEN RgC_Rg_div(GEN x, GEN y);1111GEN RgC_Rg_mul(GEN x, GEN y);1112GEN RgC_Rg_sub(GEN x, GEN y);1113GEN RgC_RgM_mul(GEN x, GEN y);1114GEN RgC_RgV_mul(GEN x, GEN y);1115GEN RgC_add(GEN x, GEN y);1116long RgC_is_ei(GEN x);1117GEN RgC_neg(GEN x);1118GEN RgC_sub(GEN x, GEN y);1119GEN RgM_Rg_add(GEN x, GEN y);1120GEN RgM_Rg_add_shallow(GEN x, GEN y);1121GEN RgM_Rg_div(GEN x, GEN y);1122GEN RgM_Rg_mul(GEN x, GEN y);1123GEN RgM_Rg_sub(GEN x, GEN y);1124GEN RgM_Rg_sub_shallow(GEN x, GEN y);1125GEN RgM_RgC_mul(GEN x, GEN y);1126GEN RgM_RgV_mul(GEN x, GEN y);1127GEN RgM_ZM_mul(GEN x, GEN y);1128GEN RgM_add(GEN x, GEN y);1129GEN RgM_det_triangular(GEN x);1130int RgM_is_QM(GEN x);1131int RgM_is_ZM(GEN x);1132int RgM_isdiagonal(GEN x);1133int RgM_isidentity(GEN x);1134int RgM_isscalar(GEN x, GEN s);1135GEN RgM_mul(GEN x, GEN y);1136GEN RgM_mul_i(GEN x, GEN y);1137GEN RgM_multosym(GEN x, GEN y);1138GEN RgM_neg(GEN x);1139GEN RgM_powers(GEN x, long l);1140GEN RgM_sqr(GEN x);1141GEN RgM_sub(GEN x, GEN y);1142GEN RgM_sumcol(GEN A);1143GEN RgM_transmul(GEN x, GEN y);1144GEN RgM_transmultosym(GEN x, GEN y);1145GEN RgMrow_zc_mul(GEN x, GEN y, long i);1146GEN RgM_zc_mul(GEN x, GEN y);1147GEN RgM_zm_mul(GEN x, GEN y);1148GEN RgMrow_RgC_mul(GEN x, GEN y, long i);1149GEN RgV_RgM_mul(GEN x, GEN y);1150GEN RgV_RgC_mul(GEN x, GEN y);1151GEN RgV_Rg_mul(GEN x, GEN y);1152GEN RgV_add(GEN x, GEN y);1153GEN RgV_dotproduct(GEN x, GEN y);1154GEN RgV_dotsquare(GEN x);1155int RgV_is_ZMV(GEN V);1156GEN RgV_kill0(GEN v);1157GEN RgV_neg(GEN x);1158GEN RgV_prod(GEN v);1159GEN RgV_sub(GEN x, GEN y);1160GEN RgV_sum(GEN v);1161GEN RgV_sumpart(GEN v, long n);1162GEN RgV_sumpart2(GEN v, long m, long n);1163GEN RgV_zc_mul(GEN x, GEN y);1164GEN RgV_zm_mul(GEN x, GEN y);1165GEN RgX_RgM_eval(GEN x, GEN y);1166GEN RgX_RgMV_eval(GEN x, GEN y);1167int isdiagonal(GEN x);1168GEN matid(long n);1169GEN scalarcol(GEN x, long n);1170GEN scalarcol_shallow(GEN x, long n);1171GEN scalarmat(GEN x, long n);1172GEN scalarmat_shallow(GEN x, long n);1173GEN scalarmat_s(long x, long n);11741175/* RgX.c */11761177GEN Kronecker_to_mod(GEN z, GEN pol);1178GEN QX_ZXQV_eval(GEN P, GEN V, GEN dV);1179GEN QXQ_charpoly(GEN A, GEN T, long v);1180GEN QXQ_powers(GEN a, long n, GEN T);1181GEN QXQ_to_mod_shallow(GEN x, GEN T);1182GEN QXQC_to_mod_shallow(GEN V, GEN T);1183GEN QXQM_to_mod_shallow(GEN V, GEN T);1184GEN QXQV_to_mod(GEN V, GEN T);1185GEN QXQX_to_mod_shallow(GEN z, GEN T);1186GEN QXQXV_to_mod(GEN V, GEN T);1187GEN QXV_QXQ_eval(GEN v, GEN a, GEN T);1188GEN QXY_QXQ_evalx(GEN v, GEN a, GEN T);1189GEN Rg_RgX_sub(GEN x, GEN y);1190GEN Rg_get_0(GEN x);1191GEN Rg_get_1(GEN x);1192GEN Rg_to_RgC(GEN x, long N);1193GEN RgM_to_RgXV(GEN x, long v);1194GEN RgM_to_RgXV_reverse(GEN x, long v);1195GEN RgM_to_RgXX(GEN x, long v,long w);1196GEN RgV_to_RgX(GEN x, long v);1197GEN RgV_to_RgM(GEN v, long n);1198GEN RgV_to_RgX_reverse(GEN x, long v);1199GEN RgX_RgXQ_eval(GEN f, GEN x, GEN T);1200GEN RgX_RgXQV_eval(GEN P, GEN V, GEN T);1201GEN RgX_RgXn_eval(GEN Q, GEN x, long n);1202GEN RgX_RgXnV_eval(GEN Q, GEN x, long n);1203GEN RgX_Rg_add(GEN y, GEN x);1204GEN RgX_Rg_add_shallow(GEN y, GEN x);1205GEN RgX_Rg_div(GEN y, GEN x);1206GEN RgX_Rg_divexact(GEN x, GEN y);1207GEN RgX_Rg_eval_bk(GEN Q, GEN x);1208GEN RgX_Rg_mul(GEN y, GEN x);1209GEN RgX_Rg_sub(GEN y, GEN x);1210GEN RgX_RgV_eval(GEN Q, GEN x);1211GEN RgX_add(GEN x, GEN y);1212GEN RgX_addmulXn_shallow(GEN x, GEN y, long d);1213GEN RgX_addmulXn(GEN x, GEN y, long d);1214GEN RgX_addspec(GEN x, GEN y, long nx, long ny);1215GEN RgX_addspec_shallow(GEN x, GEN y, long nx, long ny);1216GEN RgX_blocks(GEN P, long n, long m);1217GEN RgX_deflate(GEN x0, long d);1218GEN RgX_deriv(GEN x);1219GEN RgX_digits(GEN A, GEN B);1220GEN RgX_div_by_X_x(GEN a, GEN x, GEN *r);1221GEN RgX_divrem(GEN x,GEN y,GEN *r);1222GEN RgX_divs(GEN y, long x);1223long RgX_equal(GEN x, GEN y);1224void RgX_even_odd(GEN p, GEN *pe, GEN *po);1225GEN RgX_inflate(GEN x0, long d);1226GEN RgX_mul(GEN x,GEN y);1227GEN RgX_mul_i(GEN x,GEN y);1228GEN RgX_mul_normalized(GEN A, long a, GEN B, long b);1229GEN RgX_mulXn(GEN x, long d);1230GEN RgX_mulhigh_i(GEN f, GEN g, long n);1231GEN RgX_muls(GEN y, long x);1232GEN RgX_mulspec(GEN a, GEN b, long na, long nb);1233GEN RgX_neg(GEN x);1234GEN RgX_normalize(GEN x);1235GEN RgX_pseudodivrem(GEN x, GEN y, GEN *ptr);1236GEN RgX_pseudorem(GEN x, GEN y);1237GEN RgX_recip(GEN x);1238GEN RgX_recip_i(GEN x);1239GEN RgX_recip_shallow(GEN x);1240GEN RgX_rem(GEN x, GEN y);1241GEN RgX_renormalize_lg(GEN x, long lx);1242GEN RgX_rescale(GEN P, GEN h);1243GEN RgX_rotate_shallow(GEN P, long k, long p);1244GEN RgX_shift(GEN a, long n);1245GEN RgX_shift_shallow(GEN x, long n);1246GEN RgX_splitting(GEN p, long k);1247GEN RgX_sqr(GEN x);1248GEN RgX_sqr_i(GEN x);1249GEN RgX_sqrhigh_i(GEN f, long n);1250GEN RgX_sqrspec(GEN a, long na);1251GEN RgX_sub(GEN x, GEN y);1252GEN RgX_to_RgC(GEN x, long N);1253GEN RgX_translate(GEN P, GEN c);1254GEN RgX_unscale(GEN P, GEN h);1255GEN RgXQ_matrix_pow(GEN y, long n, long m, GEN P);1256GEN RgXQ_norm(GEN x, GEN T);1257GEN RgXQ_pow(GEN x, GEN n, GEN T);1258GEN RgXQ_powers(GEN x, long l, GEN T);1259GEN RgXQ_powu(GEN x, ulong n, GEN T);1260GEN RgXQ_trace(GEN x, GEN T);1261GEN RgXQC_red(GEN P, GEN T);1262GEN RgXQM_mul(GEN P, GEN Q, GEN T);1263GEN RgXQM_red(GEN P, GEN T);1264GEN RgXQV_RgXQ_mul(GEN v, GEN x, GEN T);1265GEN RgXQV_factorback(GEN x, GEN n, GEN T);1266GEN RgXQV_red(GEN P, GEN T);1267GEN RgXQX_RgXQ_mul(GEN x, GEN y, GEN T);1268GEN RgXQX_divrem(GEN x,GEN y,GEN T,GEN *r);1269GEN RgXQX_mul(GEN x,GEN y,GEN T);1270GEN RgXQX_powers(GEN P, long n, GEN T);1271GEN RgXQX_pseudodivrem(GEN x, GEN y, GEN T, GEN *ptr);1272GEN RgXQX_pseudorem(GEN x, GEN y, GEN T);1273GEN RgXQX_red(GEN P, GEN T);1274GEN RgXQX_sqr(GEN x, GEN T);1275GEN RgXQX_translate(GEN P, GEN c, GEN T);1276GEN RgXV_RgV_eval(GEN Q, GEN x);1277GEN RgXV_to_RgM(GEN v, long n);1278GEN RgXV_unscale(GEN v, GEN h);1279GEN RgXX_to_RgM(GEN v, long n);1280long RgXY_degreex(GEN bpol);1281GEN RgXY_derivx(GEN x);1282GEN RgXY_swap(GEN x, long n, long w);1283GEN RgXY_swapspec(GEN x, long n, long w, long nx);1284GEN RgXn_eval(GEN Q, GEN x, long n);1285GEN RgXn_exp(GEN f, long e);1286GEN RgXn_expint(GEN f, long e);1287GEN RgXn_inv(GEN f, long e);1288GEN RgXn_inv_i(GEN f, long e);1289GEN RgXn_mul(GEN f, GEN g, long n);1290GEN RgXn_powers(GEN f, long m, long n);1291GEN RgXn_recip_shallow(GEN P, long n);1292GEN RgXn_red_shallow(GEN a, long n);1293GEN RgXn_reverse(GEN f, long e);1294GEN RgXn_sqr(GEN f, long n);1295GEN RgXn_sqrt(GEN f, long n);1296GEN RgXnV_red_shallow(GEN P, long n);1297GEN RgXn_powu(GEN x, ulong m, long n);1298GEN RgXn_powu_i(GEN x, ulong m, long n);1299GEN ZX_translate(GEN P, GEN c);1300GEN ZX_unscale2n(GEN P, long n);1301GEN ZX_unscale(GEN P, GEN h);1302GEN ZX_unscale_div(GEN P, GEN h);1303GEN ZX_z_unscale(GEN P, long h);1304GEN ZXQ_powers(GEN x, long l, GEN T);1305GEN ZXQ_powu(GEN x, ulong n, GEN T);1306int ZXQX_dvd(GEN x, GEN y, GEN T);1307long brent_kung_optpow(long d, long n, long m);1308GEN gen_bkeval(GEN Q, long d, GEN x, int use_sqr, void *E,1309const struct bb_algebra *ff, GEN cmul(void *E, GEN P, long a, GEN x));1310GEN gen_bkeval_powers(GEN P, long d, GEN V, void *E,1311const struct bb_algebra *ff, GEN cmul(void *E, GEN P, long a, GEN x));1312const struct bb_algebra * get_Rg_algebra(void);1313long rfrac_deflate_order(GEN F);1314GEN rfrac_deflate_max(GEN F, long *m);1315GEN rfrac_deflate(GEN F, long m);13161317/* ZG.c */1318void ZGC_G_mul_inplace(GEN v, GEN x);1319GEN ZGCs_add(GEN x, GEN y);1320GEN G_ZGC_mul(GEN x, GEN v);1321GEN G_ZG_mul(GEN x, GEN y);1322GEN ZGC_G_mul(GEN v, GEN x);1323GEN ZGC_Z_mul(GEN v, GEN x);1324GEN ZG_G_mul(GEN x, GEN y);1325GEN ZG_Z_mul(GEN x, GEN c);1326GEN ZG_add(GEN x, GEN y);1327GEN ZG_mul(GEN x, GEN y);1328GEN ZG_neg(GEN x);1329GEN ZG_normalize(GEN x);1330GEN ZG_sub(GEN x, GEN y);13311332/* ZV.c */13331334void Flc_lincomb1_inplace(GEN X, GEN Y, ulong v, ulong q);1335GEN vecsmall_prod(GEN v);1336GEN QM_QC_mul(GEN x, GEN y);1337GEN QM_det(GEN x);1338GEN QM_ker(GEN M);1339GEN QM_mul(GEN x, GEN y);1340GEN QM_sqr(GEN x);1341void RgM_check_ZM(GEN A, const char *s);1342void RgV_check_ZV(GEN A, const char *s);1343GEN Z_ZC_sub(GEN a, GEN x);1344GEN ZV_zc_mul(GEN x, GEN y);1345GEN ZC_Q_mul(GEN A, GEN z);1346GEN ZC_Z_add(GEN x, GEN y);1347GEN ZC_Z_div(GEN x, GEN c);1348GEN ZC_Z_divexact(GEN X, GEN c);1349GEN ZC_Z_mul(GEN X, GEN c);1350GEN ZC_Z_sub(GEN x, GEN y);1351GEN ZC_ZV_mul(GEN x, GEN y);1352GEN ZC_divexactu(GEN x, ulong c);1353GEN ZC_add(GEN x, GEN y);1354GEN ZC_copy(GEN x);1355GEN ZC_hnfremdiv(GEN x, GEN y, GEN *Q);1356long ZC_is_ei(GEN x);1357GEN ZC_lincomb(GEN u, GEN v, GEN X, GEN Y);1358void ZC_lincomb1_inplace(GEN X, GEN Y, GEN v);1359void ZC_lincomb1_inplace_i(GEN X, GEN Y, GEN v, long n);1360GEN ZC_neg(GEN M);1361GEN ZC_reducemodlll(GEN x,GEN y);1362GEN ZC_reducemodmatrix(GEN v, GEN y);1363GEN ZC_sub(GEN x, GEN y);1364GEN ZC_z_mul(GEN X, long c);1365GEN ZM_Q_mul(GEN A, GEN z);1366GEN ZM_ZC_mul(GEN x, GEN y);1367GEN ZM_Z_div(GEN X, GEN c);1368GEN ZM_Z_divexact(GEN X, GEN c);1369GEN ZM_Z_mul(GEN X, GEN c);1370GEN ZM_add(GEN x, GEN y);1371GEN ZM_copy(GEN x);1372GEN ZM_det_triangular(GEN mat);1373GEN ZM_diag_mul(GEN m, GEN d);1374GEN ZM_divexactu(GEN x, ulong c);1375int ZM_equal(GEN A, GEN B);1376int ZM_equal0(GEN A);1377GEN ZM_hnfdivrem(GEN x, GEN y, GEN *Q);1378int ZM_ishnf(GEN x);1379int ZM_isdiagonal(GEN x);1380int ZM_isidentity(GEN x);1381int ZM_isscalar(GEN x, GEN s);1382long ZM_max_lg(GEN x);1383GEN ZM_mul(GEN x, GEN y);1384GEN ZM_mul_diag(GEN m, GEN d);1385GEN ZM_multosym(GEN x, GEN y);1386GEN ZM_neg(GEN x);1387GEN ZM_nm_mul(GEN x, GEN y);1388GEN ZM_pow(GEN x, GEN n);1389GEN ZM_powu(GEN x, ulong n);1390GEN ZM_reducemodlll(GEN x,GEN y);1391GEN ZM_reducemodmatrix(GEN v, GEN y);1392GEN ZM_sqr(GEN x);1393GEN ZM_sub(GEN x, GEN y);1394GEN ZM_supnorm(GEN x);1395GEN ZM_to_Flm(GEN x, ulong p);1396GEN ZM_to_zm(GEN z);1397GEN ZM_transmul(GEN x, GEN y);1398GEN ZM_transmultosym(GEN x, GEN y);1399GEN ZMV_to_zmV(GEN z);1400void ZM_togglesign(GEN M);1401GEN ZM_zc_mul(GEN x, GEN y);1402GEN ZM_zm_mul(GEN x, GEN y);1403GEN ZMrow_ZC_mul(GEN x, GEN y, long i);1404int ZMrow_equal0(GEN V, long i);1405GEN ZV_ZM_mul(GEN x, GEN y);1406int ZV_abscmp(GEN x, GEN y);1407int ZV_cmp(GEN x, GEN y);1408GEN ZV_content(GEN x);1409GEN ZV_dotproduct(GEN x,GEN y);1410GEN ZV_dotsquare(GEN x);1411int ZV_equal(GEN V, GEN W);1412int ZV_equal0(GEN V);1413long ZV_max_lg(GEN x);1414void ZV_neg_inplace(GEN M);1415GEN ZV_prod(GEN v);1416GEN ZV_sum(GEN v);1417GEN ZV_to_Flv(GEN x, ulong p);1418GEN ZV_to_nv(GEN z);1419void ZV_togglesign(GEN M);1420GEN gram_matrix(GEN M);1421GEN nm_Z_mul(GEN X, GEN c);1422GEN zm_mul(GEN x, GEN y);1423GEN zm_to_Flm(GEN z, ulong p);1424GEN zm_to_ZM(GEN z);1425GEN zm_zc_mul(GEN x, GEN y);1426GEN zmV_to_ZMV(GEN z);1427GEN zv_abs(GEN x);1428long zv_content(GEN x);1429long zv_dotproduct(GEN x, GEN y);1430int zv_equal(GEN V, GEN W);1431int zv_equal0(GEN V);1432GEN zv_neg(GEN x);1433GEN zv_neg_inplace(GEN M);1434long zv_prod(GEN v);1435GEN zv_prod_Z(GEN v);1436long zv_sum(GEN v);1437long zv_sumpart(GEN v, long n);1438GEN zv_to_Flv(GEN z, ulong p);1439GEN zv_z_mul(GEN v, long n);1440GEN zv_ZM_mul(GEN x, GEN y);1441int zvV_equal(GEN V, GEN W);14421443/* ZX.c */14441445GEN Kronecker_to_ZXQX(GEN z, GEN T);1446GEN Kronecker_to_ZXX(GEN z, long N, long v);1447GEN QX_ZX_rem(GEN x, GEN y);1448GEN QX_mul(GEN x, GEN y);1449GEN QX_sqr(GEN x);1450GEN QXQM_mul(GEN x, GEN y, GEN T);1451GEN QXQM_sqr(GEN x, GEN T);1452GEN QXQX_QXQ_mul(GEN P, GEN U, GEN T);1453GEN QXQX_mul(GEN x, GEN y, GEN T);1454GEN QXQX_powers(GEN P, long n, GEN T);1455GEN QXQX_sqr(GEN x, GEN T);1456void RgX_check_QX(GEN x, const char *s);1457void RgX_check_ZX(GEN x, const char *s);1458void RgX_check_ZXX(GEN x, const char *s);1459GEN Z_ZX_sub(GEN x, GEN y);1460GEN ZX_Z_add(GEN y,GEN x);1461GEN ZX_Z_add_shallow(GEN y, GEN x);1462GEN ZX_Z_divexact(GEN y,GEN x);1463GEN ZX_Z_eval(GEN x, GEN y);1464GEN ZX_Z_mul(GEN y,GEN x);1465GEN ZX_Z_sub(GEN y, GEN x);1466GEN ZX_add(GEN x, GEN y);1467GEN ZX_copy(GEN x);1468GEN ZX_deriv(GEN x);1469GEN ZX_div_by_X_1(GEN a, GEN *r);1470GEN ZX_divuexact(GEN y, ulong x);1471int ZX_equal(GEN V, GEN W);1472GEN ZX_eval1(GEN x);1473long ZX_max_lg(GEN x);1474GEN ZX_mod_Xnm1(GEN T, ulong n);1475GEN ZX_mul(GEN x, GEN y);1476GEN ZX_mulspec(GEN a, GEN b, long na, long nb);1477GEN ZX_mulu(GEN y, ulong x);1478GEN ZX_neg(GEN x);1479GEN ZX_rem(GEN x, GEN y);1480GEN ZX_remi2n(GEN y, long n);1481GEN ZX_rescale2n(GEN P, long n);1482GEN ZX_rescale(GEN P, GEN h);1483GEN ZX_rescale_lt(GEN P);1484GEN ZX_shifti(GEN x, long n);1485GEN ZX_sqr(GEN x);1486GEN ZX_sqrspec(GEN a, long na);1487GEN ZX_sub(GEN x, GEN y);1488long ZX_val(GEN x);1489long ZX_valrem(GEN x, GEN *Z);1490GEN ZXC_to_FlxC(GEN x, ulong p, long vs);1491GEN ZXM_to_FlxM(GEN x, ulong p, long vs);1492GEN ZXQM_mul(GEN x, GEN y, GEN T);1493GEN ZXQM_sqr(GEN x, GEN T);1494GEN ZXQX_ZXQ_mul(GEN P, GEN U, GEN T);1495GEN ZXQX_sqr(GEN x, GEN T);1496GEN ZXQX_mul(GEN x, GEN y, GEN T);1497GEN ZXT_remi2n(GEN z, long n);1498GEN ZXV_Z_mul(GEN y, GEN x);1499GEN ZXV_dotproduct(GEN V, GEN W);1500int ZXV_equal(GEN V, GEN W);1501GEN ZXV_remi2n(GEN x, long n);1502GEN ZXX_Z_divexact(GEN y, GEN x);1503GEN ZXX_Z_mul(GEN y, GEN x);1504GEN ZXX_Z_add_shallow(GEN x, GEN y);1505GEN ZXX_evalx0(GEN y);1506long ZXX_max_lg(GEN x);1507GEN ZXX_mul_Kronecker(GEN x, GEN y, long n);1508GEN ZXX_renormalize(GEN x, long lx);1509GEN ZXX_sqr_Kronecker(GEN x, long n);1510GEN RgXX_to_Kronecker(GEN P, long n);1511GEN RgXX_to_Kronecker_spec(GEN P, long lP, long n);1512GEN ZXn_mul(GEN x, GEN y, long n);1513GEN ZXn_sqr(GEN x, long n);1514GEN scalar_ZX(GEN x, long v);1515GEN scalar_ZX_shallow(GEN x, long v);1516GEN zx_to_ZX(GEN z);1517GEN zx_z_divexact(GEN y, long x);15181519/* algebras.c */15201521GEN alg_centralproj(GEN al, GEN z, long maps);1522GEN alg_changeorder(GEN al, GEN ord);1523GEN alg_complete(GEN rnf, GEN aut, GEN hi, GEN hf, long maxord);1524GEN alg_csa_table(GEN nf, GEN mt, long v, long maxord);1525GEN alg_cyclic(GEN rnf, GEN aut, GEN b, long maxord);1526long alg_get_absdim(GEN al);1527GEN alg_get_abssplitting(GEN al);1528GEN alg_get_aut(GEN al);1529GEN algaut(GEN al);1530GEN alg_get_auts(GEN al);1531GEN alg_get_b(GEN al);1532GEN algb(GEN al);1533GEN algcenter(GEN al);1534GEN alg_get_center(GEN al);1535GEN alg_get_char(GEN al);1536GEN algchar(GEN al);1537long alg_get_degree(GEN al);1538long algdegree(GEN al);1539long alg_get_dim(GEN al);1540long algdim(GEN al, long abs);1541GEN alg_get_hasse_f(GEN al);1542GEN alghassef(GEN al);1543GEN alg_get_hasse_i(GEN al);1544GEN alghassei(GEN al);1545GEN alg_get_invbasis(GEN al);1546GEN alginvbasis(GEN al);1547GEN alg_get_multable(GEN al);1548GEN alg_get_basis(GEN al);1549GEN algbasis(GEN al);1550GEN alg_get_relmultable(GEN al);1551GEN algrelmultable(GEN al);1552GEN alg_get_splitpol(GEN al);1553GEN alg_get_splittingfield(GEN al);1554GEN algsplittingfield(GEN al);1555GEN alg_get_splittingbasis(GEN al);1556GEN alg_get_splittingbasisinv(GEN al);1557GEN alg_get_splittingdata(GEN al);1558GEN algsplittingdata(GEN al);1559GEN alg_get_tracebasis(GEN al);1560GEN alg_hasse(GEN nf, long n, GEN hi, GEN hf, long var, long maxord);1561GEN alg_hilbert(GEN nf, GEN a, GEN b, long v, long maxord);1562GEN alg_matrix(GEN nf, long n, long v, GEN L, long maxord);1563long alg_model(GEN al, GEN x);1564GEN alg_quotient(GEN al, GEN I, long maps);1565GEN algradical(GEN al);1566GEN algsimpledec(GEN al, long maps);1567GEN algsimpledec_ss(GEN al, long maps);1568GEN algsubalg(GEN al, GEN basis);1569long alg_type(GEN al);1570GEN algadd(GEN al, GEN x, GEN y);1571GEN algalgtobasis(GEN al, GEN x);1572GEN algbasistoalg(GEN al, GEN x);1573GEN algcharpoly(GEN al, GEN x, long v, long abs);1574GEN algdisc(GEN al);1575GEN algdivl(GEN al, GEN x, GEN y);1576GEN algdivr(GEN al, GEN x, GEN y);1577GEN alggroup(GEN gal, GEN p);1578GEN alggroupcenter(GEN gal, GEN p, GEN* ptr_conjclasses);1579GEN alghasse(GEN al, GEN pl);1580GEN alginit(GEN A, GEN B, long v, long maxord);1581long algindex(GEN al, GEN pl);1582GEN alginv(GEN al, GEN x);1583int algisassociative(GEN mt0, GEN p);1584int algiscommutative(GEN al);1585int algisdivision(GEN al, GEN pl);1586int algisramified(GEN al, GEN pl);1587int algissemisimple(GEN al);1588int algissimple(GEN al, long ss);1589int algissplit(GEN al, GEN pl);1590int algisdivl(GEN al, GEN x, GEN y, GEN* ptz);1591int algisinv(GEN al, GEN x, GEN* ptix);1592GEN algmakeintegral(GEN mt0, long maps);1593GEN algmul(GEN al, GEN x, GEN y);1594GEN algmultable(GEN al);1595GEN alglat_get_primbasis(GEN lat);1596GEN alglat_get_scalar(GEN lat);1597GEN alglatadd(GEN al, GEN lat1, GEN lat2, GEN* ptinter);1598int alglatcontains(GEN al, GEN lat, GEN x, GEN* ptc);1599GEN alglatelement(GEN al, GEN lat, GEN c);1600GEN alglathnf(GEN al, GEN m, GEN d);1601GEN alglatindex(GEN al, GEN lat1, GEN lat2);1602GEN alglatinter(GEN al, GEN lat1, GEN lat2, GEN* ptsum);1603GEN alglatmul(GEN al, GEN lat1, GEN lat2);1604GEN alglatlefttransporter(GEN al, GEN lat1, GEN lat2);1605GEN alglatrighttransporter(GEN al, GEN lat1, GEN lat2);1606int alglatsubset(GEN al, GEN lat1, GEN lat2, GEN* ptindex);1607GEN algneg(GEN al, GEN x);1608GEN algnorm(GEN al, GEN x, long abs);1609GEN algpoleval(GEN al, GEN pol, GEN x);1610GEN algpow(GEN al, GEN x, GEN n);1611GEN algprimesubalg(GEN al);1612GEN algramifiedplaces(GEN al);1613GEN algrandom(GEN al, GEN b);1614GEN algsplit(GEN al, long v);1615GEN algtomatrix(GEN al, GEN x, long abs);1616GEN algsqr(GEN al, GEN x);1617GEN algsub(GEN al, GEN x, GEN y);1618GEN algtableinit(GEN mt, GEN p);1619GEN algtensor(GEN al1, GEN al2, long maxord);1620GEN algtrace(GEN al, GEN x, long abs);1621long algtype(GEN al);1622GEN bnfgwgeneric(GEN bnf, GEN Lpr, GEN Ld, GEN pl, long var);1623void checkalg(GEN x);1624void checkhasse(GEN nf, GEN hi, GEN hf, long n);1625void checklat(GEN al, GEN lat);1626GEN conjclasses_algcenter(GEN cc, GEN p);1627GEN galoischardet(GEN gal, GEN ch, long o);1628GEN galoischarpoly(GEN gal, GEN ch, long o);1629GEN galoischartable(GEN gal);1630GEN nfgrunwaldwang(GEN nf0, GEN Lpr, GEN Ld, GEN pl, long var);1631GEN nfgwkummer(GEN nf, GEN Lpr, GEN Ld, GEN pl, long var);16321633/* alglin1.c */16341635GEN F2Ms_colelim(GEN M, long nbrow);1636GEN F2m_image(GEN x);1637GEN F2m_indexrank(GEN x);1638GEN F2m_suppl(GEN x);1639GEN F2xqM_F2xqC_gauss(GEN a, GEN b, GEN T);1640GEN F2xqM_F2xqC_invimage(GEN a, GEN b, GEN T);1641GEN F2xqM_F2xqC_mul(GEN a, GEN b, GEN T);1642GEN F2xqM_deplin(GEN x, GEN T);1643GEN F2xqM_det(GEN a, GEN T);1644GEN F2xqM_gauss(GEN a, GEN b, GEN T);1645GEN F2xqM_ker(GEN x, GEN T);1646GEN F2xqM_image(GEN x, GEN T);1647GEN F2xqM_indexrank(GEN x, GEN T);1648GEN F2xqM_inv(GEN a, GEN T);1649GEN F2xqM_invimage(GEN a, GEN b, GEN T);1650GEN F2xqM_mul(GEN a, GEN b, GEN T);1651long F2xqM_rank(GEN x, GEN T);1652GEN F2xqM_suppl(GEN x, GEN T);1653GEN Flm_image(GEN x, ulong p);1654GEN Flm_indexrank(GEN x, ulong p);1655GEN Flm_suppl(GEN x, ulong p);1656GEN FlxqM_FlxqC_gauss(GEN a, GEN b, GEN T, ulong p);1657GEN FlxqM_FlxqC_invimage(GEN a, GEN b, GEN T, ulong p);1658GEN FlxqM_FlxqC_mul(GEN a, GEN b, GEN T, ulong p);1659GEN FlxqM_deplin(GEN x, GEN T, ulong p);1660GEN FlxqM_det(GEN a, GEN T, ulong p);1661GEN FlxqM_gauss(GEN a, GEN b, GEN T, ulong p);1662GEN FlxqM_ker(GEN x, GEN T, ulong p);1663GEN FlxqM_image(GEN x, GEN T, ulong p);1664GEN FlxqM_indexrank(GEN x, GEN T, ulong p);1665GEN FlxqM_inv(GEN x, GEN T, ulong p);1666GEN FlxqM_invimage(GEN a, GEN b, GEN T, ulong p);1667GEN FlxqM_mul(GEN a, GEN b, GEN T, ulong p);1668long FlxqM_rank(GEN x, GEN T, ulong p);1669GEN FlxqM_suppl(GEN x, GEN T, ulong p);1670GEN FpM_FpC_gauss(GEN a, GEN b, GEN p);1671GEN FpM_FpC_invimage(GEN m, GEN v, GEN p);1672GEN FpM_deplin(GEN x, GEN p);1673GEN FpM_det(GEN x, GEN p);1674GEN FpM_gauss(GEN a, GEN b, GEN p);1675GEN FpM_image(GEN x, GEN p);1676GEN FpM_indexrank(GEN x, GEN p);1677GEN FpM_intersect(GEN x, GEN y, GEN p);1678GEN FpM_intersect_i(GEN x, GEN y, GEN p);1679GEN FpM_inv(GEN x, GEN p);1680GEN FpM_invimage(GEN m, GEN v, GEN p);1681GEN FpM_ker(GEN x, GEN p);1682long FpM_rank(GEN x, GEN p);1683GEN FpM_suppl(GEN x, GEN p);1684GEN FqM_FqC_gauss(GEN a, GEN b, GEN T, GEN p);1685GEN FqM_FqC_invimage(GEN a, GEN b, GEN T, GEN p);1686GEN FqM_FqC_mul(GEN a, GEN b, GEN T, GEN p);1687GEN FqM_deplin(GEN x, GEN T, GEN p);1688GEN FqM_det(GEN x, GEN T, GEN p);1689GEN FqM_gauss(GEN a, GEN b, GEN T, GEN p);1690GEN FqM_ker(GEN x, GEN T, GEN p);1691GEN FqM_image(GEN x, GEN T, GEN p);1692GEN FqM_indexrank(GEN x, GEN T, GEN p);1693GEN FqM_inv(GEN x, GEN T, GEN p);1694GEN FqM_invimage(GEN a, GEN b, GEN T, GEN p);1695GEN FqM_mul(GEN a, GEN b, GEN T, GEN p);1696long FqM_rank(GEN a, GEN T, GEN p);1697GEN FqM_suppl(GEN x, GEN T, GEN p);1698GEN QM_image_shallow(GEN A);1699GEN QM_image(GEN A);1700GEN QM_gauss(GEN a, GEN b);1701GEN QM_gauss_i(GEN M, GEN B, long flag);1702GEN QM_indexrank(GEN x);1703GEN QM_inv(GEN M);1704long QM_rank(GEN x);1705GEN RgM_Fp_init(GEN a, GEN p, ulong *pp);1706GEN RgM_Hadamard(GEN a);1707GEN RgM_RgC_invimage(GEN A, GEN B);1708GEN RgM_diagonal(GEN m);1709GEN RgM_diagonal_shallow(GEN m);1710GEN RgM_inv(GEN a);1711GEN RgM_inv_upper(GEN a);1712GEN RgM_invimage(GEN A, GEN B);1713GEN RgM_solve(GEN a, GEN b);1714GEN RgM_solve_realimag(GEN x, GEN y);1715void RgMs_structelim(GEN M, long nbrow, GEN A, GEN *p_col, GEN *p_lin);1716GEN ZM_det(GEN a);1717GEN ZM_detmult(GEN A);1718GEN ZM_gauss(GEN a, GEN b);1719GEN ZM_ker(GEN M);1720GEN ZM_imagecompl(GEN x);1721GEN ZM_indeximage(GEN x);1722GEN ZM_indexrank(GEN x);1723GEN ZM_inv(GEN M, GEN *den);1724GEN ZM_inv_ratlift(GEN M, GEN *pden);1725GEN ZM_pseudoinv(GEN M, GEN *pv, GEN *den);1726long ZM_rank(GEN x);1727GEN ZlM_gauss(GEN a, GEN b, ulong p, long e, GEN C);1728GEN closemodinvertible(GEN x, GEN y);1729GEN deplin(GEN x);1730GEN det(GEN a);1731GEN det0(GEN a,long flag);1732GEN det2(GEN a);1733GEN detint(GEN x);1734GEN eigen(GEN x, long prec);1735GEN gauss(GEN a, GEN b);1736GEN gaussmodulo(GEN M, GEN D, GEN Y);1737GEN gaussmodulo2(GEN M, GEN D, GEN Y);1738GEN gen_Gauss(GEN a, GEN b, void *E, const struct bb_field *ff);1739GEN gen_Gauss_pivot(GEN x, long *rr, void *E, const struct bb_field *ff);1740GEN gen_det(GEN a, void *E, const struct bb_field *ff);1741GEN gen_ker(GEN x, long deplin, void *E, const struct bb_field *ff);1742GEN gen_matcolinvimage(GEN a, GEN b, void *E, const struct bb_field *ff);1743GEN gen_matcolmul(GEN a, GEN b, void *E, const struct bb_field *ff);1744GEN gen_matinvimage(GEN a, GEN b, void *E, const struct bb_field *ff);1745GEN gen_matmul(GEN a, GEN b, void *E, const struct bb_field *ff);1746GEN image(GEN x);1747GEN image2(GEN x);1748GEN imagecompl(GEN x);1749GEN indexrank(GEN x);1750GEN inverseimage(GEN mat, GEN y);1751GEN ker(GEN x);1752GEN mateigen(GEN x, long flag, long prec);1753GEN matimage0(GEN x,long flag);1754GEN matker0(GEN x, long flag);1755long rank(GEN x);1756GEN reducemodinvertible(GEN x, GEN y);1757GEN reducemodlll(GEN x,GEN y);1758GEN split_realimag(GEN x, long r1, long r2);1759GEN suppl(GEN x);17601761/* alglin2.c */17621763GEN Flm_charpoly(GEN x, ulong p);1764GEN Flm_hess(GEN x, ulong p);1765GEN FpM_charpoly(GEN x, GEN p);1766GEN FpM_hess(GEN x, GEN p);1767GEN Frobeniusform(GEN V, long n);1768GEN RgM_Frobenius(GEN A, long flag, GEN* pt_P, GEN* pt_v);1769GEN QM_minors_coprime(GEN x, GEN pp);1770GEN QM_ImZ(GEN x);1771GEN QM_ImZ_all(GEN x, GEN *U, long remove, long hnf);1772GEN QM_ImZ_hnf(GEN x);1773GEN QM_ImZ_hnfall(GEN x, GEN *U, long remove);1774GEN QM_ImQ(GEN x);1775GEN QM_ImQ_all(GEN x, GEN *U, long remove, long hnf);1776GEN QM_ImQ_hnf(GEN x);1777GEN QM_ImQ_hnfall(GEN x, GEN *U, long remove);1778GEN QM_charpoly_ZX(GEN M);1779GEN QM_charpoly_ZX_bound(GEN M, long bit);1780GEN ZM_charpoly(GEN x);1781GEN adj(GEN x);1782GEN adjsafe(GEN x);1783GEN caract(GEN x, long v);1784GEN caradj(GEN x, long v, GEN *py);1785GEN carberkowitz(GEN x, long v);1786GEN carhess(GEN x, long v);1787GEN charpoly(GEN x, long v);1788GEN charpoly0(GEN x, long v,long flag);1789GEN gnorm(GEN x);1790GEN gnorml1(GEN x,long prec);1791GEN gnorml1_fake(GEN x);1792GEN gnormlp(GEN x, GEN p, long prec);1793GEN gnorml2(GEN x);1794GEN gsupnorm(GEN x, long prec);1795void gsupnorm_aux(GEN x, GEN *m, GEN *msq, long prec);1796GEN gtrace(GEN x);1797GEN hess(GEN x);1798GEN intersect(GEN x, GEN y);1799GEN jacobi(GEN a, long prec);1800GEN matadjoint0(GEN x, long flag);1801GEN matcompanion(GEN x);1802GEN matrixqz0(GEN x, GEN pp);1803GEN minpoly(GEN x, long v);1804GEN qfgaussred(GEN a);1805GEN qfgaussred_positive(GEN a);1806GEN qfsign(GEN a);18071808/* alglin3.c */18091810GEN apply0(GEN f, GEN A);1811GEN diagonal(GEN x);1812GEN diagonal_shallow(GEN x);1813GEN extract0(GEN x, GEN l1, GEN l2);1814GEN fold0(GEN f, GEN A);1815GEN genapply(void *E, GEN (*f)(void *E, GEN x), GEN A);1816GEN genfold(void *E, GEN (*f)(void *E, GEN x, GEN y), GEN A);1817GEN genindexselect(void *E, long (*f)(void *E, GEN x), GEN A);1818GEN genselect(void *E, long (*f)(void *E, GEN x), GEN A);1819GEN gtomat(GEN x);1820GEN gtrans(GEN x);1821GEN matmuldiagonal(GEN x, GEN d);1822GEN matmultodiagonal(GEN x, GEN y);1823GEN matslice0(GEN A, long x1, long x2, long y1, long y2);1824GEN parapply(GEN V, GEN C);1825void parfor(GEN a, GEN b, GEN code, void *E, long call(void*, GEN, GEN));1826void parfor_init(parfor_t *T, GEN a, GEN b, GEN code);1827GEN parfor_next(parfor_t *T);1828void parfor_stop(parfor_t *T);1829void parforeach(GEN x, GEN code, void *E, long call(void*, GEN, GEN));1830void parforeach_init(parforeach_t *T, GEN x, GEN code);1831GEN parforeach_next(parforeach_t *T);1832void parforeach_stop(parforeach_t *T);1833void parforprime(GEN a, GEN b, GEN code, void *E, long call(void*, GEN, GEN));1834void parforprime_init(parforprime_t *T, GEN a, GEN b, GEN code);1835GEN parforprime_next(parforprime_t *T);1836void parforprime_stop(parforprime_t *T);1837void parforprimestep(GEN a, GEN b, GEN q, GEN code, void *E, long call(void*, GEN, GEN));1838void parforprimestep_init(parforprime_t *T, GEN a, GEN b, GEN q, GEN code);1839void parforvec(GEN x, GEN code, long flag, void *E, long call(void*, GEN, GEN));1840void parforvec_init(parforvec_t *T, GEN x, GEN code, long flag);1841GEN parforvec_next(parforvec_t *T);1842void parforvec_stop(parforvec_t *T);1843GEN parselect(GEN C, GEN D, long flag);1844GEN select0(GEN A, GEN f, long flag);1845GEN shallowextract(GEN x, GEN L);1846GEN shallowmatextract(GEN x, GEN l1, GEN l2);1847GEN shallowtrans(GEN x);1848GEN vecapply(void *E, GEN (*f)(void* E, GEN x), GEN x);1849GEN veccatapply(void *E, GEN (*f)(void* E, GEN x), GEN x);1850GEN veccatselapply(void *Epred, long (*pred)(void* E, GEN x), void *Efun,1851GEN (*fun)(void* E, GEN x), GEN A);1852GEN vecrange(GEN a, GEN b);1853GEN vecrangess(long a, long b);1854GEN vecselapply(void *Epred, long (*pred)(void* E, GEN x), void *Efun,1855GEN (*fun)(void* E, GEN x), GEN A);1856GEN vecselect(void *E, long (*f)(void* E, GEN x), GEN A);1857GEN vecslice0(GEN A, long y1, long y2);1858GEN vecsum(GEN v);1859GEN zv_diagonal(GEN x);18601861/* anal.c */18621863void addhelp(const char *e, char *s);1864GEN arity0(GEN C);1865void alias0(const char *s, const char *old);1866GEN compile_str(const char *s);1867long delete_var(void);1868long fetch_user_var(const char *s);1869long fetch_var(void);1870long fetch_var_higher(void);1871GEN fetch_var_value(long vx, GEN t);1872char * gp_embedded(const char *s);1873void gp_embedded_init(long rsize, long vsize);1874GEN gp_read_str(const char *t);1875GEN gp_read_str_bitprec(const char *s, long bitprec);1876GEN gp_read_str_prec(const char *s, long prec);1877entree* install(void *f, const char *name, const char *code);1878entree* is_entry(const char *s);1879void kill0(const char *e);1880void pari_var_close(void);1881void pari_var_init(void);1882long pari_var_next(void);1883long pari_var_next_temp(void);1884long pari_var_create(entree *ep);1885void name_var(long n, const char *s);1886GEN readseq(char *t);1887GEN* safegel(GEN x, long l);1888long* safeel(GEN x, long l);1889GEN* safelistel(GEN x, long l);1890GEN* safegcoeff(GEN x, long a, long b);1891GEN strtoi(const char *s);1892GEN strtor(const char *s, long prec);1893GEN varhigher(const char *s, long v);1894GEN varlower(const char *s, long v);18951896/* aprcl.c */18971898GEN divisorslenstra(GEN N, GEN r, GEN s);1899long isprimeAPRCL(GEN N);19001901/* Qfb.c */19021903GEN Qfb0(GEN x, GEN y, GEN z);1904void check_quaddisc(GEN x, long *s, long *r, const char *f);1905void check_quaddisc_imag(GEN x, long *r, const char *f);1906void check_quaddisc_real(GEN x, long *r, const char *f);1907long cornacchia(GEN d, GEN p, GEN *px, GEN *py);1908long cornacchia2(GEN d, GEN p, GEN *px, GEN *py);1909long cornacchia2_sqrt(GEN d, GEN p, GEN b, GEN *px, GEN *py);1910GEN nucomp(GEN x, GEN y, GEN L);1911GEN nudupl(GEN x, GEN L);1912GEN nupow(GEN x, GEN n, GEN L);1913GEN primeform(GEN x, GEN p);1914GEN primeform_u(GEN x, ulong p);1915GEN qfb_1(GEN x);1916int qfb_equal1(GEN f);1917GEN qfbcomp(GEN x, GEN y);1918GEN qfbcomp_i(GEN x, GEN y);1919GEN qfbcompraw(GEN x, GEN y);1920GEN qfbcompraw_i(GEN x, GEN y);1921GEN qfbpow(GEN x, GEN n);1922GEN qfbpow_i(GEN x, GEN n);1923GEN qfbpowraw(GEN x, long n);1924GEN qfbred(GEN x);1925GEN qfbred_i(GEN x);1926GEN qfbred0(GEN x, long flag, GEN isqrtD, GEN sqrtD);1927GEN qfbredsl2(GEN q, GEN isD);1928GEN qfbsolve(GEN Q, GEN n, long flag);1929GEN qfbsqr(GEN x);1930GEN qfbsqr_i(GEN x);1931GEN qfi_Shanks(GEN a, GEN g, long n);1932GEN qfi_log(GEN a, GEN g, GEN o);1933GEN qfi_order(GEN q, GEN o);1934GEN qfisolvep(GEN Q, GEN p);1935GEN qfr3_comp(GEN x, GEN y, struct qfr_data *S);1936GEN qfr3_compraw(GEN x, GEN y);1937GEN qfr3_pow(GEN x, GEN n, struct qfr_data *S);1938GEN qfr3_red(GEN x, struct qfr_data *S);1939GEN qfr3_rho(GEN x, struct qfr_data *S);1940GEN qfr3_to_qfr(GEN x, GEN D);1941GEN qfr5_comp(GEN x, GEN y, struct qfr_data *S);1942GEN qfr5_compraw(GEN x, GEN y);1943GEN qfr5_dist(GEN e, GEN d, long prec);1944GEN qfr5_pow(GEN x, GEN n, struct qfr_data *S);1945GEN qfr5_red(GEN x, struct qfr_data *S);1946GEN qfr5_rho(GEN x, struct qfr_data *S);1947GEN qfr5_to_qfr(GEN x, GEN D, GEN d0);1948void qfr_data_init(GEN D, long prec, struct qfr_data *S);1949GEN qfr_to_qfr5(GEN x, long prec);1950GEN qfrsolvep(GEN Q, GEN p);1951GEN quadgen(GEN x);1952GEN quadgen0(GEN x, long v);1953GEN quadpoly(GEN x);1954GEN quadpoly_i(GEN D);1955GEN quadpoly0(GEN x, long v);19561957/* arith1.c */19581959ulong Fl_2gener_pre(ulong p, ulong pi);1960ulong Fl_log(ulong a, ulong g, ulong ord, ulong p);1961ulong Fl_log_pre(ulong a, ulong g, ulong ord, ulong p, ulong pi);1962ulong Fl_order(ulong a, ulong o, ulong p);1963GEN Fl_powers(ulong x, long n, ulong p);1964GEN Fl_powers_pre(ulong x, long n, ulong p, ulong pi);1965ulong Fl_powu(ulong x, ulong n, ulong p);1966ulong Fl_powu_pre(ulong x, ulong n, ulong p, ulong pi);1967ulong Fl_sqrt(ulong a, ulong p);1968ulong Fl_sqrt_pre(ulong a, ulong p, ulong pi);1969ulong Fl_sqrt_pre_i(ulong a, ulong s2, ulong p, ulong pi);1970ulong Fl_sqrtl(ulong a, ulong l, ulong p);1971ulong Fl_sqrtl_pre(ulong a, ulong l, ulong p, ulong pi);1972ulong Fl_sqrtn(ulong a, long n, ulong p, ulong *zetan);1973ulong Fl_sqrtn_pre(ulong a, long n, ulong p, ulong pi, ulong *zetan);1974GEN Fp_2gener(GEN p);1975GEN Fp_factored_order(GEN a, GEN o, GEN p);1976int Fp_ispower(GEN x, GEN K, GEN p);1977GEN Fp_log(GEN a, GEN g, GEN ord, GEN p);1978GEN Fp_order(GEN a, GEN o, GEN p);1979GEN Fp_pow(GEN a, GEN n, GEN m);1980GEN Fp_pow_init(GEN x, GEN n, long k, GEN p);1981GEN Fp_pow_table(GEN R, GEN n, GEN p);1982GEN Fp_powers(GEN x, long n, GEN p);1983GEN Fp_pows(GEN A, long k, GEN N);1984GEN Fp_powu(GEN x, ulong k, GEN p);1985GEN Fp_sqrt(GEN a, GEN p);1986GEN Fp_sqrt_i(GEN a, GEN y, GEN p);1987GEN Fp_sqrtn(GEN a, GEN n, GEN p, GEN *zetan);1988GEN FpV_prod(GEN V, GEN p);1989GEN Z_ZV_mod(GEN P, GEN xa);1990GEN Z_ZV_mod_tree(GEN P, GEN xa, GEN T);1991GEN Z_chinese(GEN a, GEN b, GEN A, GEN B);1992GEN Z_chinese_all(GEN a, GEN b, GEN A, GEN B, GEN *pC);1993GEN Z_chinese_coprime(GEN a, GEN b, GEN A, GEN B, GEN C);1994GEN Z_chinese_post(GEN a, GEN b, GEN C, GEN U, GEN d);1995void Z_chinese_pre(GEN A, GEN B, GEN *pC, GEN *pU, GEN *pd);1996GEN Z_factor_listP(GEN N, GEN L);1997long Z_isanypower(GEN x, GEN *y);1998long Z_isfundamental(GEN x);1999long Z_ispow2(GEN x);2000long Z_ispowerall(GEN x, ulong k, GEN *pt);2001long Z_issquareall(GEN x, GEN *pt);2002GEN Z_nv_mod(GEN P, GEN xa);2003GEN ZM_nv_mod_tree(GEN M, GEN xa, GEN T);2004GEN ZV_allpnqn(GEN x);2005GEN ZV_chinese(GEN A, GEN P, GEN *pt_mod);2006GEN ZV_chinese_tree(GEN A, GEN P, GEN T, GEN R);2007GEN ZV_chinesetree(GEN P, GEN T);2008GEN ZV_nv_mod_tree(GEN V, GEN xa, GEN T);2009GEN ZV_producttree(GEN xa);2010GEN ZX_nv_mod_tree(GEN P, GEN xa, GEN T);2011GEN ZXC_nv_mod_tree(GEN P, GEN xa, GEN T, long w);2012GEN ZXM_nv_mod_tree(GEN M, GEN xa, GEN T, long w);2013GEN ZXX_nv_mod_tree(GEN P, GEN xa, GEN T, long w);2014GEN Zideallog(GEN bid, GEN x);2015long Zp_issquare(GEN a, GEN p);2016GEN bestappr(GEN x, GEN k);2017GEN bestapprPade(GEN x, long B);2018GEN chinese(GEN x, GEN y);2019GEN chinese1(GEN x);2020GEN chinese1_coprime_Z(GEN x);2021GEN classno(GEN x);2022GEN classno2(GEN x);2023GEN contfrac0(GEN x, GEN b, long flag);2024GEN contfracpnqn(GEN x, long n);2025GEN fibo(long n);2026GEN gboundcf(GEN x, long k);2027GEN gcf(GEN x);2028GEN gcf2(GEN b, GEN x);2029const struct bb_field *get_Fp_field(void **E, GEN p);2030long gisanypower(GEN x, GEN *pty);2031GEN gissquare(GEN x);2032GEN gissquareall(GEN x, GEN *pt);2033GEN hclassno(GEN x);2034GEN hclassno6(GEN x);2035long hilbert(GEN x, GEN y, GEN p);2036long hilbertii(GEN x, GEN y, GEN p);2037long isfundamental(GEN x);2038long ispolygonal(GEN x, GEN S, GEN *N);2039long ispower(GEN x, GEN k, GEN *pty);2040long isprimepower(GEN x, GEN *pty);2041long ispseudoprimepower(GEN n, GEN *pt);2042long issquare(GEN x);2043long issquareall(GEN x, GEN *pt);2044long krois(GEN x, long y);2045long kroiu(GEN x, ulong y);2046long kronecker(GEN x, GEN y);2047long krosi(long s, GEN x);2048long kross(long x, long y);2049long kroui(ulong x, GEN y);2050long krouu(ulong x, ulong y);2051GEN lcmii(GEN a, GEN b);2052GEN Fp_invgen(GEN x, GEN N, GEN *pd);2053long logint0(GEN B, GEN y, GEN *ptq);2054long logintall(GEN B, GEN y, GEN *ptq);2055GEN mpfact(long n);2056ulong factorial_Fl(long n, ulong p);2057GEN factorial_Fp(long n, GEN p);2058GEN muls_interval(long a, long b);2059GEN mulu_interval(ulong a, ulong b);2060GEN mulu_interval_step(ulong a, ulong b, ulong step);2061GEN ncV_chinese_center(GEN A, GEN P, GEN *pt_mod);2062GEN ncV_chinese_center_tree(GEN A, GEN P, GEN T, GEN R);2063GEN nmV_chinese_center(GEN A, GEN P, GEN *pt_mod);2064GEN nmV_chinese_center_tree(GEN A, GEN P, GEN T, GEN R);2065ulong nonsquare_Fl(ulong p);2066GEN nxCV_chinese_center(GEN A, GEN P, GEN *pt_mod);2067GEN nxCV_chinese_center_tree(GEN A, GEN P, GEN T, GEN R);2068GEN nxMV_chinese_center(GEN A, GEN P, GEN *pt_mod);2069GEN nxV_chinese_center(GEN A, GEN P, GEN *pt_mod);2070GEN nxV_chinese_center_tree(GEN A, GEN P, GEN T, GEN R);2071GEN ZV_chinese_center(GEN A, GEN P, GEN *pt_mod);2072GEN odd_prime_divisors(GEN q);2073GEN order(GEN x);2074ulong pgener_Fl(ulong p);2075ulong pgener_Fl_local(ulong p, GEN L);2076GEN pgener_Fp(GEN p);2077GEN pgener_Fp_local(GEN p, GEN L);2078ulong pgener_Zl(ulong p);2079GEN pgener_Zp(GEN p);2080GEN pnqn(GEN x);2081GEN qfbclassno0(GEN x,long flag);2082GEN quadclassno(GEN x);2083GEN quaddisc(GEN x);2084GEN quadregulator(GEN x, long prec);2085GEN quadunit(GEN x);2086GEN quadunit0(GEN x, long v);2087GEN ramanujantau(GEN n, long ell);2088ulong rootsof1_Fl(ulong n, ulong p);2089GEN rootsof1_Fp(GEN n, GEN p);2090GEN rootsof1u_Fp(ulong n, GEN p);2091long sisfundamental(long x);2092GEN sqrtint(GEN a);2093GEN sqrtint0(GEN a, GEN *r);2094ulong u_chinese_coprime(ulong a, ulong b, ulong A, ulong B, ulong C);2095long uisprimepower(ulong n, ulong *p);2096long uissquare(ulong A);2097long uissquareall(ulong A, ulong *sqrtA);2098long ulogintall(ulong B, ulong y, ulong *ptq);2099long unegisfundamental(ulong x);2100long uposisfundamental(ulong x);2101GEN znlog(GEN x, GEN g, GEN o);2102GEN znorder(GEN x, GEN o);2103GEN znprimroot(GEN m);2104GEN znstar(GEN x);2105GEN znstar0(GEN N, long flag);2106GEN Zn_quad_roots(GEN N, GEN B, GEN C);21072108/* arith2.c */21092110int RgV_is_ZVpos(GEN v);2111int RgV_is_ZVnon0(GEN v);2112GEN Z_lsmoothen(GEN N, GEN L, GEN *pP, GEN *pe);2113GEN Z_smoothen(GEN N, GEN L, GEN *pP, GEN *pe);2114GEN boundfact(GEN n, ulong lim);2115GEN check_arith_pos(GEN n, const char *f);2116GEN check_arith_non0(GEN n, const char *f);2117GEN check_arith_all(GEN n, const char *f);2118GEN clean_Z_factor(GEN f);2119GEN corepartial(GEN n, long l);2120GEN core0(GEN n,long flag);2121GEN core2(GEN n);2122GEN core2partial(GEN n, long l);2123GEN coredisc(GEN n);2124GEN coredisc0(GEN n,long flag);2125GEN coredisc2(GEN n);2126long corediscs(long D, ulong *f);2127GEN digits(GEN N, GEN B);2128GEN divisors(GEN n);2129GEN divisors_factored(GEN N);2130GEN divisors0(GEN N, long flag);2131GEN divisorsu(ulong n);2132GEN divisorsu_moebius(GEN P);2133GEN divisorsu_fact(GEN fa);2134GEN divisorsu_fact_factored(GEN fa);2135GEN factor_pn_1(GEN p, ulong n);2136GEN factor_pn_1_limit(GEN p, long n, ulong lim);2137GEN factoru_pow(ulong n);2138GEN fromdigits(GEN x, GEN B);2139GEN fromdigitsu(GEN x, GEN B);2140GEN fuse_Z_factor(GEN f, GEN B);2141GEN gen_digits(GEN x, GEN B, long n, void *E, struct bb_ring *r,2142GEN (*div)(void *E, GEN x, GEN y, GEN *r));2143GEN gen_fromdigits(GEN x, GEN B, void *E, struct bb_ring *r);2144int is_Z_factor(GEN f);2145int is_Z_factornon0(GEN f);2146int is_Z_factorpos(GEN f);2147int is_nf_factor(GEN F);2148int is_nf_extfactor(GEN F);2149GEN sumdigits(GEN n);2150GEN sumdigits0(GEN n, GEN B);2151ulong sumdigitsu(ulong n);2152GEN usumdiv_fact(GEN f);2153GEN usumdivk_fact(GEN f, ulong k);21542155/* base1.c */21562157GEN FpX_FpC_nfpoleval(GEN nf, GEN pol, GEN a, GEN p);2158GEN embed_T2(GEN x, long r1);2159GEN embednorm_T2(GEN x, long r1);2160GEN embed_norm(GEN x, long r1);2161void check_ZKmodule(GEN x, const char *s);2162void checkbid(GEN bid);2163GEN checkbid_i(GEN bid);2164GEN checkbnf(GEN bnf);2165GEN checkbnf_i(GEN bnf);2166void checkbnr(GEN bnr);2167GEN checkbnr_i(GEN bnr);2168void checkabgrp(GEN v);2169void checksqmat(GEN x, long N);2170GEN checknf(GEN nf);2171GEN checknf_i(GEN nf);2172GEN checknfelt_mod(GEN nf, GEN x, const char *s);2173void checkprid(GEN bid);2174int checkprid_i(GEN x);2175void checkrnf(GEN rnf);2176int checkrnf_i(GEN rnf);2177GEN factoredpolred(GEN x, GEN fa);2178GEN factoredpolred2(GEN x, GEN fa);2179GEN galoisapply(GEN nf, GEN aut, GEN x);2180GEN get_bnf(GEN x, long *t);2181GEN get_bnfpol(GEN x, GEN *bnf, GEN *nf);2182GEN get_nf(GEN x, long *t);2183GEN get_nfpol(GEN x, GEN *nf);2184GEN get_prid(GEN x);2185GEN idealfrobenius(GEN nf, GEN gal, GEN pr);2186GEN idealfrobenius_aut(GEN nf, GEN gal, GEN pr, GEN aut);2187GEN idealramfrobenius(GEN nf, GEN gal, GEN pr, GEN ram);2188GEN idealramfrobenius_aut(GEN nf, GEN gal, GEN pr, GEN ram, GEN aut);2189GEN idealramgroups(GEN nf, GEN gal, GEN pr);2190GEN idealramgroups_aut(GEN nf, GEN gal, GEN pr, GEN aut);2191GEN nf_get_allroots(GEN nf);2192long nf_get_prec(GEN x);2193GEN nfmaxord_to_nf(nfmaxord_t *T, GEN ro, long prec);2194GEN nfcertify(GEN x);2195GEN nfgaloismatrix(GEN nf, GEN s);2196GEN nfgaloismatrixapply(GEN nf, GEN M, GEN x);2197GEN nfgaloispermtobasis(GEN nf, GEN gal);2198void nfinit_basic(nfmaxord_t *T, GEN x);2199GEN nfinit_complete(nfmaxord_t *T, long flag, long prec);2200GEN nfinit(GEN x, long prec);2201GEN nfinit0(GEN x, long flag, long prec);2202GEN nfinitall(GEN x, long flag, long prec);2203GEN nfinitred(GEN x, long prec);2204GEN nfinitred2(GEN x, long prec);2205GEN nfisincl(GEN a, GEN b);2206GEN nfisincl0(GEN fa, GEN fb, long flag);2207GEN nfisisom(GEN a, GEN b);2208GEN nfnewprec(GEN nf, long prec);2209GEN nfnewprec_shallow(GEN nf, long prec);2210GEN nfpoleval(GEN nf, GEN pol, GEN a);2211GEN nfsplitting(GEN T, GEN D);2212GEN nfsplitting_gp(GEN T, GEN D, long flag);2213GEN nfsplitting0(GEN T, GEN D, long flag);2214long nftyp(GEN x);2215GEN polredord(GEN x);2216GEN polred(GEN x);2217GEN polred0(GEN x, long flag, GEN fa);2218GEN polred2(GEN x);2219GEN polredabs(GEN x);2220GEN polredabs0(GEN x, long flag);2221GEN polredabs2(GEN x);2222GEN polredabsall(GEN x, long flun);2223GEN polredbest(GEN x, long flag);2224GEN rnfpolredabs(GEN nf, GEN pol, long flag);2225GEN rnfpolredbest(GEN nf, GEN R, long flag);2226GEN smallpolred(GEN x);2227GEN smallpolred2(GEN x);2228GEN tschirnhaus(GEN x);2229GEN ZX_Q_mul(GEN A, GEN z);2230GEN ZX_Q_normalize(GEN pol, GEN *ptlc);2231GEN ZX_Z_normalize(GEN pol, GEN *ptk);2232GEN ZX_to_monic(GEN pol, GEN *lead);2233GEN ZX_primitive_to_monic(GEN pol, GEN *lead);2234GEN ZXX_Q_mul(GEN A, GEN z);22352236/* base2.c */22372238GEN Fq_to_nf(GEN x, GEN modpr);2239GEN FqM_to_nfM(GEN z, GEN modpr);2240GEN FqV_to_nfV(GEN z, GEN modpr);2241GEN FqX_to_nfX(GEN x, GEN modpr);2242GEN Rg_nffix(const char *f, GEN T, GEN c, int lift);2243GEN RgV_nffix(const char *f, GEN T, GEN P, int lift);2244GEN RgX_nffix(const char *s, GEN nf, GEN x, int lift);2245GEN ZX_compositum_disjoint(GEN A, GEN B);2246GEN ZX_compositum(GEN A, GEN B, long *lambda);2247long ZpX_disc_val(GEN f, GEN p);2248GEN ZpX_gcd(GEN f1,GEN f2,GEN p, GEN pm);2249GEN ZpX_monic_factor(GEN f, GEN p, long prec);2250GEN ZpX_primedec(GEN T, GEN p);2251GEN ZpX_reduced_resultant(GEN x, GEN y, GEN p, GEN pm);2252GEN ZpX_reduced_resultant_fast(GEN f, GEN g, GEN p, long M);2253long ZpX_resultant_val(GEN f, GEN g, GEN p, long M);2254void checkmodpr(GEN modpr);2255GEN compositum(GEN P, GEN Q);2256GEN compositum2(GEN P, GEN Q);2257GEN nfdisc(GEN x);2258GEN get_modpr(GEN x);2259GEN indexpartial(GEN P, GEN DP);2260GEN modpr_genFq(GEN modpr);2261GEN nf_to_Fq_init(GEN nf, GEN *pr, GEN *T, GEN *p);2262GEN nf_to_Fq(GEN nf, GEN x, GEN modpr);2263GEN nfM_to_FqM(GEN z, GEN nf,GEN modpr);2264GEN nfV_to_FqV(GEN z, GEN nf,GEN modpr);2265GEN nfX_to_FqX(GEN x, GEN nf,GEN modpr);2266GEN nfX_to_monic(GEN nf, GEN T, GEN *pL);2267GEN nfbasis(GEN x, GEN *y);2268GEN nfcompositum(GEN nf, GEN A, GEN B, long flag);2269GEN nfdiscfactors(GEN x);2270void nfmaxord(nfmaxord_t *S, GEN T, long flag);2271GEN nfmodpr(GEN nf, GEN x, GEN pr);2272GEN nfmodprinit(GEN nf, GEN pr);2273GEN nfmodprinit0(GEN nf, GEN pr, long v);2274GEN nfmodprlift(GEN nf, GEN x, GEN pr);2275GEN nfreducemodpr(GEN nf, GEN x, GEN modpr);2276GEN polcompositum0(GEN P, GEN Q,long flag);2277GEN idealprimedec(GEN nf,GEN p);2278GEN idealprimedec_galois(GEN nf, GEN p);2279GEN idealprimedec_degrees(GEN nf, GEN p);2280GEN idealprimedec_kummer(GEN nf,GEN pol,long e,GEN p);2281GEN idealprimedec_limit_f(GEN nf, GEN p, long f);2282GEN idealprimedec_limit_norm(GEN nf, GEN p, GEN B);2283GEN poldiscfactors(GEN T, long flag);2284GEN rnfbasis(GEN bnf, GEN order);2285GEN rnfdedekind(GEN nf, GEN T, GEN pr, long flag);2286GEN rnfdet(GEN nf, GEN order);2287GEN rnfdisc_factored(GEN nf, GEN pol, GEN *pd);2288GEN rnfdiscf(GEN nf, GEN pol);2289GEN rnfequation(GEN nf, GEN pol);2290GEN rnfequation0(GEN nf, GEN pol, long flall);2291GEN rnfequation2(GEN nf, GEN pol);2292GEN nf_pV_to_prV(GEN nf, GEN P);2293GEN nf_rnfeq(GEN nf, GEN R);2294GEN nf_rnfeqsimple(GEN nf, GEN R);2295GEN rnfequationall(GEN A, GEN B, long *pk, GEN *pLPRS);2296GEN rnfhnfbasis(GEN bnf, GEN order);2297long rnfisfree(GEN bnf, GEN order);2298GEN rnflllgram(GEN nf, GEN pol, GEN order,long prec);2299GEN rnfpolred(GEN nf, GEN pol, long prec);2300GEN rnfpseudobasis(GEN nf, GEN pol);2301GEN rnfsimplifybasis(GEN bnf, GEN order);2302GEN rnfsteinitz(GEN nf, GEN order);2303long factorial_lval(ulong n, ulong p);2304GEN zk_to_Fq_init(GEN nf, GEN *pr, GEN *T, GEN *p);2305GEN zk_to_Fq(GEN x, GEN modpr);2306GEN QXQV_to_FpM(GEN basis, GEN T, GEN p);2307GEN zkmodprinit(GEN nf, GEN pr);23082309/* base3.c */23102311GEN Idealstar(GEN nf, GEN x,long flun);2312GEN Idealstarmod(GEN nf, GEN ideal, long flag, GEN MOD);2313GEN Idealstarprk(GEN nf, GEN pr, long k, long flag);2314GEN RgC_to_nfC(GEN nf,GEN x);2315GEN RgM_RgX_mul(GEN A, GEN x);2316GEN RgM_to_nfM(GEN nf,GEN x);2317GEN RgX_to_nfX(GEN nf,GEN pol);2318long ZC_nfval(GEN x, GEN P);2319long ZC_nfvalrem(GEN x, GEN P, GEN *t);2320int ZC_prdvd(GEN x, GEN P);2321GEN ZM_ZX_mul(GEN A, GEN x);2322GEN ZV_snf_gcd(GEN x, GEN mod);2323GEN algtobasis(GEN nf, GEN x);2324GEN basistoalg(GEN nf, GEN x);2325GEN ei_multable(GEN nf, long i);2326const struct bb_field *get_nf_field(void **E, GEN nf);2327GEN famat_nfvalrem(GEN nf, GEN x, GEN pr, GEN *py);2328GEN gpnfvalrem(GEN nf, GEN x, GEN pr, GEN *py);2329GEN ideallist(GEN nf,long bound);2330GEN ideallist0(GEN nf,long bound, long flag);2331GEN gideallist(GEN nf, GEN bound, long flag);2332GEN ideallistarch(GEN nf, GEN list, GEN arch);2333GEN ideallog(GEN nf,GEN x,GEN bid);2334GEN ideallogmod(GEN nf,GEN x,GEN bid, GEN mod);2335GEN ideallog_units(GEN bnf, GEN bid);2336GEN ideallog_units0(GEN bnf, GEN bid, GEN MOD);2337GEN idealprincipalunits(GEN nf, GEN pr, long e);2338GEN idealstar0(GEN nf, GEN x,long flag);2339GEN idealstarmod(GEN nf, GEN ideal, long flag, GEN MOD);2340GEN indices_to_vec01(GEN archp, long r);2341GEN matalgtobasis(GEN nf, GEN x);2342GEN matbasistoalg(GEN nf, GEN x);2343GEN multable(GEN nf, GEN x);2344GEN nf_to_scalar_or_alg(GEN nf, GEN x);2345GEN nf_to_scalar_or_basis(GEN nf, GEN x);2346GEN nf_cxlog(GEN nf, GEN x, long prec);2347GEN nfV_cxlog(GEN nf, GEN x, long prec);2348GEN nfadd(GEN nf, GEN x, GEN y);2349int nfchecksigns(GEN nf, GEN x, GEN pl);2350GEN nfdiv(GEN nf, GEN x, GEN y);2351GEN nfdiveuc(GEN nf, GEN a, GEN b);2352GEN nfdivrem(GEN nf, GEN a, GEN b);2353GEN nfembed(GEN nf, GEN x, long k);2354GEN nfeltembed(GEN nf, GEN x, GEN ind0, long prec);2355GEN nfeltsign(GEN nf, GEN x, GEN ind0);2356GEN nfinv(GEN nf, GEN x);2357GEN nfinvmodideal(GEN nf, GEN x, GEN ideal);2358GEN nflogembed(GEN nf, GEN x, GEN *emb, long prec);2359GEN nfM_det(GEN nf, GEN M);2360GEN nfM_inv(GEN nf, GEN M);2361GEN nfM_mul(GEN nf, GEN A, GEN B);2362GEN nfM_nfC_mul(GEN nf, GEN A, GEN B);2363GEN nfmod(GEN nf, GEN a, GEN b);2364GEN nfmul(GEN nf,GEN x,GEN y);2365GEN nfmuli(GEN nf,GEN x,GEN y);2366GEN nfnorm(GEN nf, GEN x);2367GEN nfpolsturm(GEN nf, GEN f, GEN ind0);2368GEN nfpow(GEN nf,GEN x,GEN k);2369GEN nfpow_u(GEN nf, GEN z, ulong n);2370GEN nfpowmodideal(GEN nf,GEN x,GEN k,GEN ideal);2371GEN nfsign(GEN nf,GEN alpha);2372GEN nfsign_arch(GEN nf,GEN alpha,GEN arch);2373GEN nfsign_from_logarch(GEN Larch, GEN invpi, GEN archp);2374GEN nfsqr(GEN nf,GEN x);2375GEN nfsqri(GEN nf, GEN x);2376GEN nfsub(GEN nf, GEN x, GEN y);2377GEN nftrace(GEN nf, GEN x);2378long nfval(GEN nf, GEN x, GEN vp);2379long nfvalrem(GEN nf, GEN x, GEN pr, GEN *py);2380GEN polmod_nffix(const char *f, GEN rnf, GEN x,int lift);2381GEN polmod_nffix2(const char *f, GEN T, GEN R, GEN x, int lift);2382GEN pr_basis_perm(GEN nf, GEN pr);2383int pr_equal(GEN P, GEN Q);2384GEN rnfalgtobasis(GEN rnf, GEN x);2385GEN rnfbasistoalg(GEN rnf, GEN x);2386GEN rnfeltnorm(GEN rnf, GEN x);2387GEN rnfelttrace(GEN rnf, GEN x);2388GEN set_sign_mod_divisor(GEN nf, GEN x, GEN y, GEN sarch);2389GEN tablemul(GEN TAB, GEN x, GEN y);2390GEN tablemul_ei(GEN M, GEN x, long i);2391GEN tablemul_ei_ej(GEN M, long i, long j);2392GEN tablemulvec(GEN M, GEN x, GEN v);2393GEN tablesqr(GEN tab, GEN x);2394GEN vec01_to_indices(GEN arch);2395GEN vecmodii(GEN a, GEN b);2396GEN vecmoduu(GEN a, GEN b);2397GEN vecsmall01_to_indices(GEN v);2398GEN zk_inv(GEN nf, GEN x);2399GEN zk_multable(GEN nf, GEN x);2400GEN zk_scalar_or_multable(GEN, GEN x);2401GEN zkchinese(GEN zkc, GEN x, GEN y);2402GEN zkchinese1(GEN zkc, GEN x);2403GEN zkchineseinit(GEN nf, GEN A, GEN B, GEN AB);2404GEN zkmultable_capZ(GEN mx);2405GEN zkmultable_inv(GEN mx);24062407/* base4.c */24082409ulong Fl_invgen(ulong x, ulong p, ulong *pg);2410GEN Z_cba(GEN a, GEN b);2411GEN Z_ppgle(GEN a, GEN b);2412GEN Z_ppio(GEN a, GEN b);2413GEN Z_ppo(GEN x, GEN f);2414GEN ZV_cba_extend(GEN P, GEN b);2415GEN ZV_cba(GEN v);2416GEN RM_round_maxrank(GEN G);2417GEN ZM_famat_limit(GEN fa, GEN limit);2418GEN famat_Z_gcd(GEN M, GEN n);2419GEN famat_div_shallow(GEN f, GEN g);2420GEN famat_div(GEN f, GEN g);2421GEN famat_idealfactor(GEN nf, GEN x);2422GEN famat_inv(GEN f);2423GEN famat_inv_shallow(GEN f);2424GEN famat_makecoprime(GEN nf, GEN g, GEN e, GEN pr, GEN prk, GEN EX);2425GEN famat_mul(GEN f, GEN g);2426GEN famat_mul_shallow(GEN f, GEN g);2427GEN famat_mulpow_shallow(GEN f, GEN g, GEN e);2428GEN famat_mulpows_shallow(GEN f, GEN g, long e);2429GEN famat_pow(GEN f, GEN n);2430GEN famat_pow_shallow(GEN f, GEN n);2431GEN famat_pows_shallow(GEN f, long n);2432GEN famat_sqr(GEN f);2433GEN famat_reduce(GEN fa);2434GEN famat_remove_trivial(GEN fa);2435GEN famat_to_nf(GEN nf, GEN f);2436GEN famat_to_nf_modideal_coprime(GEN nf, GEN g, GEN e, GEN id, GEN EX);2437GEN famat_to_nf_moddivisor(GEN nf, GEN g, GEN e, GEN bid);2438GEN famatV_factorback(GEN v, GEN e);2439GEN famatV_zv_factorback(GEN v, GEN e);2440GEN famatsmall_reduce(GEN fa);2441GEN gpidealval(GEN nf, GEN ix, GEN P);2442GEN gpidealfactor(GEN nf, GEN x, GEN lim);2443GEN idealHNF_Z_factor(GEN x, GEN *pvN, GEN *pvZ);2444GEN idealHNF_Z_factor_i(GEN x, GEN f, GEN *pvN, GEN *pvZ);2445GEN idealtwoelt(GEN nf, GEN ix);2446GEN idealtwoelt0(GEN nf, GEN ix, GEN a);2447GEN idealtwoelt2(GEN nf, GEN x, GEN a);2448GEN idealadd(GEN nf, GEN x, GEN y);2449GEN idealaddmultoone(GEN nf, GEN list);2450GEN idealaddtoone(GEN nf, GEN x, GEN y);2451GEN idealaddtoone_i(GEN nf, GEN x, GEN y);2452GEN idealaddtoone_raw(GEN nf, GEN x, GEN y);2453GEN idealaddtoone0(GEN nf, GEN x, GEN y);2454GEN idealappr(GEN nf, GEN x);2455GEN idealappr0(GEN nf, GEN x, long fl);2456GEN idealapprfact(GEN nf, GEN x);2457GEN idealchinese(GEN nf, GEN x, GEN y);2458GEN idealcoprime(GEN nf, GEN x, GEN y);2459GEN idealcoprimefact(GEN nf, GEN x, GEN fy);2460GEN idealdiv(GEN nf, GEN x, GEN y);2461GEN idealdiv0(GEN nf, GEN x, GEN y,long flag);2462GEN idealdivexact(GEN nf, GEN x, GEN y);2463GEN idealdivpowprime(GEN nf, GEN x, GEN vp, GEN n);2464GEN idealdown(GEN nf, GEN x);2465GEN idealismaximal(GEN nf, GEN x);2466GEN idealmulpowprime(GEN nf, GEN x, GEN vp, GEN n);2467GEN idealfactor(GEN nf, GEN x);2468GEN idealfactor_limit(GEN nf, GEN x, ulong lim);2469GEN idealfactor_partial(GEN nf, GEN x, GEN L);2470GEN idealhnf(GEN nf, GEN x);2471GEN idealhnf_principal(GEN nf, GEN x);2472GEN idealhnf_shallow(GEN nf, GEN x);2473GEN idealhnf_two(GEN nf, GEN vp);2474GEN idealhnf0(GEN nf, GEN a, GEN b);2475GEN idealintersect(GEN nf, GEN x, GEN y);2476GEN idealinv(GEN nf, GEN ix);2477GEN idealHNF_inv(GEN nf, GEN I);2478GEN idealHNF_inv_Z(GEN nf, GEN I);2479long idealispower(GEN nf, GEN A, long n, GEN *pB);2480GEN idealred0(GEN nf, GEN I,GEN vdir);2481GEN idealmul(GEN nf, GEN ix, GEN iy);2482GEN idealmul0(GEN nf, GEN ix, GEN iy, long flag);2483GEN idealHNF_mul(GEN nf, GEN ix, GEN iy);2484GEN idealmulred(GEN nf, GEN ix, GEN iy);2485GEN idealnorm(GEN nf, GEN x);2486GEN idealnumden(GEN nf, GEN x);2487GEN idealpow(GEN nf, GEN ix, GEN n);2488GEN idealpow0(GEN nf, GEN ix, GEN n, long flag);2489GEN idealpowred(GEN nf, GEN ix, GEN n);2490GEN idealpows(GEN nf, GEN ideal, long iexp);2491long idealprodval(GEN nf, GEN I, GEN pr);2492GEN idealprodprime(GEN nf, GEN L);2493GEN idealsqr(GEN nf, GEN x);2494long idealtyp(GEN *ideal, GEN *arch);2495long idealval(GEN nf,GEN ix,GEN vp);2496GEN idealprod(GEN nf, GEN I);2497long isideal(GEN nf,GEN x);2498GEN idealmin(GEN nf,GEN ix,GEN vdir);2499GEN matreduce(GEN fa);2500GEN nf_get_Gtwist(GEN nf, GEN vdir);2501GEN nf_get_Gtwist1(GEN nf, long i);2502GEN nf_to_Fp_coprime(GEN nf, GEN x, GEN modpr);2503GEN nfC_multable_mul(GEN v, GEN x);2504GEN nfC_nf_mul(GEN nf, GEN v, GEN x);2505GEN nfdetint(GEN nf,GEN pseudo);2506GEN nfdivmodpr(GEN nf, GEN x, GEN y, GEN modpr);2507GEN idealredmodpower(GEN nf, GEN x, ulong k, ulong B);2508GEN nfhnf(GEN nf, GEN x);2509GEN nfhnf0(GEN nf, GEN x, long flag);2510GEN nfhnfmod(GEN nf, GEN x, GEN d);2511GEN nfkermodpr(GEN nf, GEN x, GEN modpr);2512GEN nfmulmodpr(GEN nf, GEN x, GEN y, GEN modpr);2513GEN nfpowmodpr(GEN nf, GEN x, GEN k, GEN modpr);2514GEN nfreduce(GEN nf, GEN x, GEN ideal);2515GEN nfsnf(GEN nf, GEN x);2516GEN nfsnf0(GEN nf, GEN x, long flag);2517GEN nfsolvemodpr(GEN nf, GEN a, GEN b, GEN modpr);2518GEN pr_hnf(GEN nf, GEN pr);2519GEN pr_inv(GEN pr);2520GEN pr_inv_p(GEN pr);2521GEN pr_uniformizer(GEN pr, GEN F);2522GEN prV_lcm_capZ(GEN L);2523GEN sunits_makecoprime(GEN X, GEN pr, GEN prk);2524GEN to_famat(GEN x, GEN y);2525GEN to_famat_shallow(GEN x, GEN y);2526ulong u_ppo(ulong x, ulong f);2527GEN vecdiv(GEN x, GEN y);2528GEN vecinv(GEN x);2529GEN vecmul(GEN x, GEN y);2530GEN vecpow(GEN x, GEN n);2531GEN zkC_multable_mul(GEN v, GEN x);25322533/* base5.c */25342535GEN eltreltoabs(GEN rnfeq, GEN x);2536GEN eltabstorel(GEN eq, GEN P);2537GEN eltabstorel_lift(GEN rnfeq, GEN P);2538GEN nf_nfzk(GEN nf, GEN rnfeq);2539GEN rnf_build_nfabs(GEN rnf, long prec);2540GEN rnf_zkabs(GEN rnf);2541GEN nfeltup(GEN nf, GEN x, GEN zknf);2542void rnfcomplete(GEN rnf);2543GEN rnfeltabstorel(GEN rnf, GEN x);2544GEN rnfeltdown(GEN rnf, GEN x);2545GEN rnfeltdown0(GEN rnf, GEN x, long flag);2546GEN rnfeltreltoabs(GEN rnf, GEN x);2547GEN rnfeltup(GEN rnf, GEN x);2548GEN rnfeltup0(GEN rnf, GEN x, long flag);2549GEN rnfidealabstorel(GEN rnf, GEN x);2550GEN rnfidealdown(GEN rnf, GEN x);2551GEN rnfidealfactor(GEN rnf, GEN x);2552GEN rnfidealhnf(GEN rnf, GEN x);2553GEN rnfidealmul(GEN rnf,GEN x,GEN y);2554GEN rnfidealnormabs(GEN rnf, GEN x);2555GEN rnfidealnormrel(GEN rnf, GEN x);2556GEN rnfidealprimedec(GEN rnf, GEN pr);2557GEN rnfidealreltoabs(GEN rnf, GEN x);2558GEN rnfidealreltoabs0(GEN rnf, GEN x, long flag);2559GEN rnfidealtwoelement(GEN rnf,GEN x);2560GEN rnfidealup(GEN rnf, GEN x);2561GEN rnfidealup0(GEN rnf,GEN x, long flag);2562GEN rnfinit(GEN nf,GEN pol);2563GEN rnfinit0(GEN nf,GEN pol,long flag);25642565/* bb_group.c */25662567GEN get_arith_ZZM(GEN o);2568GEN get_arith_Z(GEN o);2569GEN gen_PH_log(GEN a, GEN g, GEN ord, void *E, const struct bb_group *grp);2570GEN gen_Shanks_init(GEN g, long n, void *E, const struct bb_group *grp);2571GEN gen_Shanks(GEN T, GEN x, ulong N, void *E, const struct bb_group *grp);2572GEN gen_Shanks_sqrtn(GEN a, GEN n, GEN q, GEN *zetan, void *E, const struct bb_group *grp);2573GEN gen_gener(GEN o, void *E, const struct bb_group *grp);2574GEN gen_ellgens(GEN d1, GEN d2, GEN m, void *E, const struct bb_group *grp,2575GEN pairorder(void *E, GEN P, GEN Q, GEN m, GEN F));2576GEN gen_ellgroup(GEN N, GEN F, GEN *pt_m, void *E, const struct bb_group *grp,2577GEN pairorder(void *E, GEN P, GEN Q, GEN m, GEN F));2578GEN gen_factored_order(GEN a, GEN o, void *E, const struct bb_group *grp);2579GEN gen_order(GEN x, GEN o, void *E, const struct bb_group *grp);2580GEN gen_select_order(GEN o, void *E, const struct bb_group *grp);25812582GEN gen_plog(GEN x,GEN g0,GEN q, void *E, const struct bb_group *grp);2583GEN gen_pow(GEN x, GEN n, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN));2584GEN gen_pow_fold(GEN x, GEN n, void *E, GEN (*sqr)(void*,GEN), GEN (*msqr)(void*,GEN));2585GEN gen_pow_fold_i(GEN x, GEN n, void *E, GEN (*sqr)(void*,GEN), GEN (*msqr)(void*,GEN));2586GEN gen_pow_i(GEN x, GEN n, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN));2587GEN gen_pow_init(GEN x, GEN n, long k, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN));2588GEN gen_pow_table(GEN R, GEN n, void *E, GEN (*one)(void*), GEN (*mul)(void*,GEN,GEN));2589GEN gen_powers(GEN x, long l, int use_sqr, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN), GEN (*one)(void*));2590GEN gen_powu(GEN x, ulong n, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN));2591GEN gen_powu_fold(GEN x, ulong n, void *E, GEN (*sqr)(void*,GEN), GEN (*msqr)(void*,GEN));2592GEN gen_powu_fold_i(GEN x, ulong n, void *E, GEN (*sqr)(void*,GEN), GEN (*msqr)(void*,GEN));2593GEN gen_powu_i(GEN x, ulong n, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN));2594GEN gen_product(GEN x, void *data, GEN (*mul)(void*,GEN,GEN));25952596/* bb_hnf.c */25972598GEN matdetmod(GEN A, GEN d);2599GEN matimagemod(GEN A, GEN d, GEN* U);2600GEN matinvmod(GEN A, GEN d);2601GEN matkermod(GEN A, GEN d, GEN* im);2602GEN matsolvemod(GEN M, GEN D, GEN Y, long flag);26032604/* bern.c */26052606GEN bernfrac(long n);2607GEN bernpol(long k, long v);2608GEN bernreal(long n, long prec);2609GEN bernvec(long nomb);2610void constbern(long n);2611GEN eulerfrac(long k);2612GEN eulerpol(long k, long v);2613GEN eulerreal(long n, long prec);2614GEN eulervec(long n);26152616/* bibli1.c */26172618int QR_init(GEN x, GEN *pB, GEN *pQ, GEN *pL, long prec);2619GEN R_from_QR(GEN x, long prec);2620GEN RgM_Babai(GEN B, GEN t);2621int RgM_QR_init(GEN x, GEN *pB, GEN *pQ, GEN *pL, long prec);2622GEN RgM_gram_schmidt(GEN e, GEN *ptB);2623GEN algdep(GEN x, long n);2624GEN algdep0(GEN x, long n, long bit);2625GEN bestapprnf(GEN x, GEN T, GEN rootsT, long prec);2626void forqfvec(void *E, long (*fun)(void *, GEN, GEN, double), GEN a, GEN BORNE);2627void forqfvec0(GEN a, GEN BORNE, GEN code);2628void forqfvec1(void *E, long (*fun)(void *, GEN), GEN a, GEN BORNE);2629GEN gaussred_from_QR(GEN x, long prec);2630GEN lindep(GEN x);2631GEN lindep_Xadic(GEN x);2632GEN lindep_bit(GEN x, long bit);2633GEN lindep_padic(GEN x);2634GEN lindep0(GEN x, long flag);2635GEN lindep2(GEN x, long bit);2636GEN lindepfull_bit(GEN x, long bit);2637GEN mathouseholder(GEN Q, GEN v);2638GEN matqr(GEN x, long flag, long prec);2639GEN minim(GEN a, GEN borne, GEN stockmax);2640GEN minim_raw(GEN a, GEN borne, GEN stockmax);2641GEN minim_zm(GEN a, GEN borne, GEN stockmax);2642GEN minim2(GEN a, GEN borne, GEN stockmax);2643GEN qfminim0(GEN a, GEN borne, GEN stockmax,long flag, long prec);2644GEN qfperfection(GEN a);2645GEN qfrep0(GEN a, GEN borne, long flag);2646GEN seralgdep(GEN s, long p, long r);2647GEN vandermondeinverse(GEN L, GEN T, GEN den, GEN prep);2648GEN vandermondeinverseinit(GEN L);2649GEN zncoppersmith(GEN P0, GEN N, GEN X, GEN B);26502651/* bibli2.c */26522653GEN QXQ_reverse(GEN a, GEN T);2654GEN vec_equiv(GEN F);2655GEN RgV_polint(GEN X, GEN Y, long v);2656GEN vec_reduce(GEN v, GEN *pE);2657GEN RgXQ_reverse(GEN a, GEN T);2658GEN ZC_union_shallow(GEN x, GEN y);2659GEN ZV_indexsort(GEN L);2660long ZV_search(GEN x, GEN y);2661GEN ZV_sort(GEN L);2662void ZV_sort_inplace(GEN L);2663GEN ZV_sort_uniq(GEN L);2664GEN ZV_union_shallow(GEN x, GEN y);2665GEN binomial(GEN x, long k);2666GEN binomial0(GEN x, GEN k);2667GEN binomialuu(ulong n, ulong k);2668int cmp_Flx(GEN x, GEN y);2669int cmp_RgX(GEN x, GEN y);2670int cmp_nodata(void *data, GEN x, GEN y);2671int cmp_prime_ideal(GEN x, GEN y);2672int cmp_prime_over_p(GEN x, GEN y);2673int cmp_universal(GEN x, GEN y);2674GEN convol(GEN x, GEN y);2675int gen_cmp_RgX(void *data, GEN x, GEN y);2676GEN polcyclo(long n, long v);2677GEN polcyclo_eval(long n, GEN x);2678GEN dirdiv(GEN x, GEN y);2679GEN dirmul(GEN x, GEN y);2680GEN eulerianpol(long N, long v);2681GEN gprec_wensure(GEN x, long pr);2682GEN gen_indexsort(GEN x, void *E, int (*cmp)(void*,GEN,GEN));2683GEN gen_indexsort_uniq(GEN x, void *E, int (*cmp)(void*,GEN,GEN));2684long gen_search(GEN x, GEN y, void *data, int (*cmp)(void*,GEN,GEN));2685GEN gen_setminus(GEN set1, GEN set2, int (*cmp)(GEN,GEN));2686GEN gen_sort(GEN x, void *E, int (*cmp)(void*,GEN,GEN));2687void gen_sort_inplace(GEN x, void *E, int (*cmp)(void*,GEN,GEN), GEN *perm);2688GEN gen_sort_shallow(GEN x, void *E, int (*cmp)(void*,GEN,GEN));2689GEN gen_sort_uniq(GEN x, void *E, int (*cmp)(void*,GEN,GEN));2690long getstack(void);2691long gettime(void);2692long getabstime(void);2693GEN getwalltime(void);2694GEN gprec(GEN x, long l);2695GEN gprec_wtrunc(GEN x, long pr);2696GEN gprec_w(GEN x, long pr);2697GEN gtoset(GEN x);2698GEN indexlexsort(GEN x);2699GEN indexsort(GEN x);2700GEN indexvecsort(GEN x, GEN k);2701GEN laplace(GEN x);2702GEN lexsort(GEN x);2703GEN mathilbert(long n);2704GEN matqpascal(long n, GEN q);2705GEN merge_factor(GEN fx, GEN fy, void *data, int (*cmp)(void *,GEN,GEN));2706GEN merge_sort_uniq(GEN x, GEN y, void *data, int (*cmp)(void *,GEN,GEN));2707GEN modreverse(GEN x);2708GEN polhermite(long n, long v);2709GEN polhermite_eval0(long n, GEN x, long flag);2710GEN polhermite_eval(long n, GEN x);2711GEN pollaguerre(long n, GEN a, long v);2712GEN pollaguerre_eval(long n, GEN a, GEN x);2713GEN pollaguerre_eval0(long n, GEN a, GEN x, long flag);2714GEN pollegendre(long n, long v);2715GEN pollegendre_reduced(long n, long v);2716GEN pollegendre_eval(long n, GEN x);2717GEN pollegendre_eval0(long n, GEN x, long flag);2718GEN polint(GEN xa, GEN ya, GEN x, GEN *pe);2719GEN polint_i(GEN X, GEN Y, GEN t, long *pe);2720GEN polintspec(GEN xa, GEN ya, GEN x, long n, long *pe);2721GEN polchebyshev(long n, long kind, long v);2722GEN polchebyshev_eval(long n, long kind, GEN x);2723GEN polchebyshev1(long n, long v);2724GEN polchebyshev2(long n, long v);2725GEN polrecip(GEN x);2726GEN setbinop(GEN f, GEN x, GEN y);2727GEN setintersect(GEN x, GEN y);2728long setisset(GEN x);2729GEN setminus(GEN x, GEN y);2730long setsearch(GEN x, GEN y, long flag);2731GEN setunion(GEN x, GEN y);2732GEN setunion_i(GEN x, GEN y);2733GEN sort(GEN x);2734GEN sort_factor(GEN y, void *data, int (*cmp)(void*,GEN,GEN));2735GEN stirling(long n, long m, long flag);2736GEN stirling1(ulong n, ulong m);2737GEN stirling2(ulong n, ulong m);2738long tablesearch(GEN T, GEN x, int (*cmp)(GEN,GEN));2739GEN vecbinomial(long n);2740long vecsearch(GEN v, GEN x, GEN k);2741GEN vecsort(GEN x, GEN k);2742GEN vecsort0(GEN x, GEN k, long flag);2743long zv_search(GEN x, long y);27442745/* bit.c */27462747GEN bits_to_int(GEN x, long l);2748ulong bits_to_u(GEN v, long l);2749GEN binaire(GEN x);2750GEN binary_2k(GEN x, long k);2751GEN binary_2k_nv(GEN x, long k);2752GEN binary_zv(GEN x);2753long bittest(GEN x, long n);2754GEN fromdigits_2k(GEN x, long k);2755GEN gbitand(GEN x, GEN y);2756GEN gbitneg(GEN x, long n);2757GEN gbitnegimply(GEN x, GEN y);2758GEN gbitor(GEN x, GEN y);2759GEN gbittest(GEN x, long n);2760GEN gbitxor(GEN x, GEN y);2761long hammingl(ulong w);2762long hammingweight(GEN n);2763GEN ibitand(GEN x, GEN y);2764GEN ibitnegimply(GEN x, GEN y);2765GEN ibitor(GEN x, GEN y);2766GEN ibitxor(GEN x, GEN y);2767GEN nv_fromdigits_2k(GEN x, long k);27682769/* bnflog.c */2770GEN bnflogef(GEN bnf, GEN pr);2771GEN bnflog(GEN bnf, GEN l);2772GEN bnflogdegree(GEN bnf, GEN A, GEN ell);2773long nfislocalpower(GEN nf, GEN pr, GEN a, GEN n);2774long rnfislocalcyclo(GEN rnf);27752776/* bnfunits.c */27772778GEN bnfisunit(GEN bnf, GEN x);2779GEN bnfissunit(GEN bnf,GEN suni,GEN x);2780GEN bnfsunit(GEN bnf,GEN s,long PREC);2781GEN bnfunits(GEN bnf, GEN S);2782GEN bnfisunit0(GEN bnf, GEN x, GEN U);2783GEN sunits_mod_units(GEN bnf, GEN S);27842785/* buch1.c */27862787GEN Buchquad(GEN D, double c1, double c2, long prec);2788GEN quadclassunit0(GEN x, long flag,GEN data, long prec);2789GEN quadhilbert(GEN D, long prec);2790GEN quadray(GEN bnf, GEN f, long prec);27912792/* buch2.c */27932794GEN Buchall(GEN P, long flag, long prec);2795GEN Buchall_param(GEN P, double bach, double bach2, long nbrelpid, long flun, long prec);2796GEN bnf_build_cheapfu(GEN bnf);2797GEN bnf_build_cycgen(GEN bnf);2798GEN bnf_build_matalpha(GEN bnf);2799GEN bnf_build_units(GEN bnf);2800GEN bnf_compactfu(GEN bnf);2801GEN bnf_compactfu_mat(GEN bnf);2802GEN bnf_has_fu(GEN bnf);2803GEN bnfinit0(GEN P,long flag,GEN data,long prec);2804GEN bnfisprincipal0(GEN bnf, GEN x,long flall);2805GEN bnfnewprec(GEN nf, long prec);2806GEN bnfnewprec_shallow(GEN nf, long prec);2807void bnftestprimes(GEN bnf, GEN bound);2808GEN bnrnewprec(GEN bnr, long prec);2809GEN bnrnewprec_shallow(GEN bnr, long prec);2810GEN isprincipalfact(GEN bnf, GEN C, GEN L, GEN f, long flag);2811GEN isprincipalfact_or_fail(GEN bnf, GEN C, GEN P, GEN e);2812GEN isprincipal(GEN bnf, GEN x);2813GEN nf_cxlog_normalize(GEN nf, GEN x, long prec);2814GEN nfcyclotomicunits(GEN nf, GEN zu);2815GEN nfsign_units(GEN bnf, GEN archp, int add_zu);2816GEN nfsign_tu(GEN bnf, GEN archp);2817GEN nfsign_fu(GEN bnf, GEN archp);2818GEN signunits(GEN bnf);28192820/* buch3.c */28212822GEN Hermite_bound(long n, long prec);2823void bnr_subgroup_sanitize(GEN *pbnr, GEN *pH);2824void bnr_char_sanitize(GEN *pbnr, GEN *pchi);2825GEN ABC_to_bnr(GEN A, GEN B, GEN C, GEN *H, int gen);2826GEN Buchray(GEN bnf, GEN module, long flag);2827GEN Buchraymod(GEN bnf, GEN f, long flag, GEN MOD);2828GEN bnrautmatrix(GEN bnr, GEN aut);2829GEN bnr_subgroup_check(GEN bnr, GEN H, GEN *pdeg);2830GEN bnrchar(GEN bnr, GEN g, GEN v);2831GEN bnrchar_primitive(GEN bnr, GEN chi, GEN bnrc);2832GEN bnrclassno(GEN bnf,GEN ideal);2833GEN bnrclassno0(GEN A,GEN B,GEN C);2834GEN bnrclassnolist(GEN bnf,GEN listes);2835GEN bnrchar_primitive_raw(GEN bnr, GEN bnrc, GEN chi);2836GEN bnrconductor_factored(GEN bnr, GEN H);2837GEN bnrconductor_raw(GEN bnr, GEN H);2838GEN bnrconductormod(GEN bnr, GEN H0, GEN MOD);2839GEN bnrconductor0(GEN A, GEN B, GEN C, long flag);2840GEN bnrconductor(GEN bnr, GEN H0, long flag);2841GEN bnrconductor_i(GEN bnr, GEN H0, long flag);2842GEN bnrconductorofchar(GEN bnr,GEN chi);2843GEN bnrdisc0(GEN A, GEN B, GEN C, long flag);2844GEN bnrdisc(GEN bnr, GEN H, long flag);2845GEN bnrdisclist0(GEN bnf,GEN borne, GEN arch);2846GEN bnrgaloismatrix(GEN bnr, GEN aut);2847GEN bnrgaloisapply(GEN bnr, GEN mat, GEN x);2848GEN bnrinit0(GEN bnf,GEN ideal,long flag);2849GEN bnrinitmod(GEN bnf, GEN ideal, long flag, GEN MOD);2850long bnrisconductor0(GEN A, GEN B, GEN C);2851long bnrisconductor(GEN bnr, GEN H);2852long bnrisgalois(GEN bnr, GEN M, GEN H);2853GEN bnrisprincipalmod(GEN bnf, GEN x, GEN mod, long flag);2854GEN bnrisprincipal(GEN bnf, GEN x,long flag);2855GEN bnrmap(GEN A, GEN B);2856GEN bnrsurjection(GEN bnr1, GEN bnr2);2857GEN bnfnarrow(GEN bnf);2858long bnfcertify(GEN bnf);2859long bnfcertify0(GEN bnf, long flag);2860GEN decodemodule(GEN nf, GEN fa);2861GEN discrayabslist(GEN bnf,GEN listes);2862GEN discrayabslistarch(GEN bnf, GEN arch, ulong bound);2863GEN idealmoddivisor(GEN bnr, GEN x);2864GEN isprincipalray(GEN bnf, GEN x);2865GEN isprincipalraygen(GEN bnf, GEN x);2866GEN nf_deg1_prime(GEN nf);2867GEN nfarchstar(GEN nf,GEN x,GEN arch);2868GEN rnfconductor(GEN bnf, GEN polrel);2869GEN rnfconductor0(GEN bnf, GEN T, long flag);2870long rnfisabelian(GEN nf, GEN pol);2871GEN rnfnormgroup(GEN bnr, GEN polrel);2872GEN subgrouplist0(GEN bnr, GEN indexbound, long all);28732874/* buch4.c */28752876GEN bnfisnorm(GEN bnf,GEN x,long flag);2877GEN rnfisnorm(GEN S, GEN x, long flag);2878GEN rnfisnorminit(GEN bnf, GEN R, int galois);28792880/* char.c */28812882GEN coprimes_zv(ulong N);2883int char_check(GEN cyc, GEN chi);2884GEN charconj(GEN cyc, GEN chi);2885GEN charconj0(GEN cyc, GEN chi);2886GEN chardiv(GEN x, GEN a, GEN b);2887GEN chardiv0(GEN x, GEN a, GEN b);2888GEN chareval(GEN G, GEN chi, GEN n, GEN z);2889GEN chargalois(GEN G, GEN ORD);2890GEN charker(GEN cyc, GEN chi);2891GEN charker0(GEN cyc, GEN chi);2892GEN charmul(GEN x, GEN a, GEN b);2893GEN charmul0(GEN x, GEN a, GEN b);2894GEN charorder(GEN cyc, GEN x);2895GEN charorder0(GEN x, GEN chi);2896GEN charpow(GEN cyc, GEN a, GEN N);2897GEN charpow0(GEN x, GEN a, GEN N);2898GEN char_denormalize(GEN cyc, GEN D, GEN chic);2899GEN char_normalize(GEN chi, GEN ncyc);2900GEN char_simplify(GEN D, GEN C);2901int checkznstar_i(GEN G);2902GEN cyc_normalize(GEN c);2903GEN ncharvecexpo(GEN G, GEN nchi);2904GEN znchar(GEN D);2905GEN znchar_quad(GEN G, GEN D);2906int zncharcheck(GEN G, GEN chi);2907GEN zncharconductor(GEN G, GEN chi);2908GEN zncharconj(GEN G, GEN chi);2909GEN znchardecompose(GEN G, GEN chi, GEN Q);2910GEN znchardiv(GEN G, GEN a, GEN b);2911GEN znchareval(GEN G, GEN chi, GEN n, GEN z);2912GEN zncharinduce(GEN G, GEN chi, GEN N);2913long zncharisodd(GEN G, GEN chi);2914GEN zncharker(GEN G, GEN chi);2915GEN zncharmul(GEN G, GEN a, GEN b);2916GEN zncharorder(GEN G, GEN chi);2917GEN zncharpow(GEN G, GEN a, GEN n);2918GEN znchartokronecker(GEN G, GEN chi, long flag);2919GEN znchartoprimitive(GEN G, GEN chi);2920int znconrey_check(GEN cyc, GEN chi);2921GEN znconrey_normalized(GEN G, GEN chi);2922GEN znconreychar(GEN bid, GEN m);2923GEN znconreyfromchar_normalized(GEN bid, GEN chi);2924GEN znconreyconductor(GEN bid, GEN co, GEN *pm);2925GEN znconreyexp(GEN bid, GEN x);2926GEN znconreyfromchar(GEN bid, GEN chi);2927GEN znconreylog(GEN bid, GEN x);2928GEN znconreylog_normalize(GEN G, GEN m);2929GEN znlog0(GEN h, GEN g, GEN o);2930long zv_cyc_minimal(GEN cyc, GEN g, GEN coprime);2931long zv_cyc_minimize(GEN cyc, GEN g, GEN coprime);29322933/* compile.c */29342935GEN closure_deriv(GEN G);2936GEN closure_derivn(GEN G, long k);2937long localvars_find(GEN pack, entree *ep);2938GEN localvars_read_str(const char *str, GEN pack);2939GEN snm_closure(entree *ep, GEN data);2940GEN strtoclosure(const char *s, long n, ...);2941GEN strtofunction(const char *s);29422943/* concat.c */29442945GEN gconcat(GEN x, GEN y);2946GEN gconcat1(GEN x);2947GEN matconcat(GEN v);2948GEN shallowconcat(GEN x, GEN y);2949GEN shallowconcat1(GEN x);2950GEN shallowmatconcat(GEN v);2951GEN vconcat(GEN A, GEN B);29522953/* default.c */2954enum { d_SILENT = 0, d_ACKNOWLEDGE, d_INITRC, d_RETURN };29552956GEN default0(const char *a, const char *b);2957long getrealprecision(void);2958entree *pari_is_default(const char *s);2959GEN sd_TeXstyle(const char *v, long flag);2960GEN sd_colors(const char *v, long flag);2961GEN sd_compatible(const char *v, long flag);2962GEN sd_datadir(const char *v, long flag);2963GEN sd_debug(const char *v, long flag);2964GEN sd_debugfiles(const char *v, long flag);2965GEN sd_debugmem(const char *v, long flag);2966GEN sd_factor_add_primes(const char *v, long flag);2967GEN sd_factor_proven(const char *v, long flag);2968GEN sd_format(const char *v, long flag);2969GEN sd_histsize(const char *v, long flag);2970GEN sd_log(const char *v, long flag);2971GEN sd_logfile(const char *v, long flag);2972GEN sd_nbthreads(const char *v, long flag);2973GEN sd_new_galois_format(const char *v, long flag);2974GEN sd_output(const char *v, long flag);2975GEN sd_parisize(const char *v, long flag);2976GEN sd_parisizemax(const char *v, long flag);2977GEN sd_path(const char *v, long flag);2978GEN sd_plothsizes(const char *v, long flag);2979GEN sd_prettyprinter(const char *v, long flag);2980GEN sd_primelimit(const char *v, long flag);2981GEN sd_realbitprecision(const char *v, long flag);2982GEN sd_realprecision(const char *v, long flag);2983GEN sd_secure(const char *v, long flag);2984GEN sd_seriesprecision(const char *v, long flag);2985GEN sd_simplify(const char *v, long flag);2986GEN sd_sopath(char *v, int flag);2987GEN sd_strictargs(const char *v, long flag);2988GEN sd_strictmatch(const char *v, long flag);2989GEN sd_string(const char *v, long flag, const char *s, char **f);2990GEN sd_threadsize(const char *v, long flag);2991GEN sd_threadsizemax(const char *v, long flag);2992GEN sd_intarray(const char *v, long flag, GEN *pz, const char *s);2993GEN sd_toggle(const char *v, long flag, const char *s, int *ptn);2994GEN sd_ulong(const char *v, long flag, const char *s, ulong *ptn, ulong Min, ulong Max, const char **msg);2995GEN setdefault(const char *s, const char *v, long flag);2996long setrealprecision(long n, long *prec);29972998/* ecpp.c */29993000GEN ecpp(GEN N);3001GEN ecpp0(GEN N, long stopat);3002GEN ecppexport(GEN cert, long flag);3003long ecppisvalid(GEN cert);3004long isprimeECPP(GEN N);30053006/* gplib.c */30073008GEN sd_breakloop(const char *v, long flag);3009GEN sd_echo(const char *v, long flag);3010GEN sd_graphcolormap(const char *v, long flag);3011GEN sd_graphcolors(const char *v, long flag);3012GEN sd_help(const char *v, long flag);3013GEN sd_histfile(const char *v, long flag);3014GEN sd_lines(const char *v, long flag);3015GEN sd_linewrap(const char *v, long flag);3016GEN sd_prompt(const char *v, long flag);3017GEN sd_prompt_cont(const char *v, long flag);3018GEN sd_psfile(const char *v, long flag);3019GEN sd_readline(const char *v, long flag);3020GEN sd_recover(const char *v, long flag);3021GEN sd_timer(const char *v, long flag);3022void pari_hit_return(void);3023void gp_load_gprc(void);3024int gp_meta(const char *buf, int ismain);3025const char **gphelp_keyword_list(void);3026void pari_center(const char *s);3027long pari_community(void);3028void pari_print_version(void);3029const char *gp_format_time(long delay);3030const char *gp_format_prompt(const char *p);3031void pari_alarm(long s);3032GEN gp_alarm(long s, GEN code);3033GEN gp_input(void);3034void gp_allocatemem(GEN z);3035int gp_handle_exception(long numerr);3036void gp_alarm_handler(int sig);3037void gp_sigint_fun(void);3038enum { h_REGULAR=0, h_LONG=1, h_APROPOS=2, h_RL=4 };3039void gp_help(const char *s, long flag);3040void gp_echo_and_log(const char *prompt, const char *s);3041void print_fun_list(char **list, long nbli);3042GEN strtime(long t);30433044/* dirichlet.c */30453046GEN direuler(void *E, GEN (*eval)(void *, GEN), GEN a, GEN b, GEN c);3047GEN dirpowers(long n, GEN x, long prec);3048GEN dirpowerssum0(GEN N, GEN s, GEN f, long prec);3049GEN dirpowerssum(ulong N, GEN s, long prec);3050GEN dirpowerssumfun(ulong N, GEN s, void *E, GEN (*f)(void *,ulong,long), long prec);3051GEN vecpowuu(long N, ulong B);3052GEN vecpowug(long N, GEN B, long prec);30533054/* ellanal.c */30553056GEN ellanalyticrank(GEN e, GEN eps, long prec);3057GEN ellanalyticrank_bitprec(GEN e, GEN eps, long bitprec);3058GEN ellanal_globalred_all(GEN e, GEN *N, GEN *cb, GEN *tam);3059GEN ellheegner(GEN e);3060GEN ellL1(GEN E, long r, long prec);3061GEN ellL1_bitprec(GEN E, long r, long bitprec);30623063/* elldata.c */30643065GEN ellconvertname(GEN s);3066GEN elldatagenerators(GEN E);3067GEN ellidentify(GEN E);3068GEN ellsearch(GEN A);3069GEN ellsearchcurve(GEN name);3070void forell(void *E, long call(void*, GEN), long a, long b, long flag);30713072/* ellfromeqn.c */30733074GEN ellfromeqn(GEN s);30753076/* elliptic.c */3077enum { t_ELL_Rg = 0, t_ELL_Q, t_ELL_Qp, t_ELL_Fp, t_ELL_Fq, t_ELL_NF };3078long ellQ_get_CM(GEN e);3079void ellQ_setprec(long prec);3080int ell_is_integral(GEN E);3081GEN ellbasechar(GEN E);3082GEN akell(GEN e, GEN n);3083GEN ellan(GEN e, long n);3084GEN ellanQ_zv(GEN e, long n);3085GEN bilhell(GEN e, GEN z1, GEN z2, long prec);3086void checkell(GEN e);3087void checkell_Fq(GEN e);3088void checkell_Q(GEN e);3089void checkell_Qp(GEN e);3090void checkellisog(GEN v);3091void checkellpt(GEN z);3092void checkell5(GEN e);3093GEN cxredsl2(GEN t, GEN *U);3094GEN cxredsl2_i(GEN z, GEN *pU, GEN *czd);3095GEN ec_2divpol_evalx(GEN E, GEN x);3096GEN ec_3divpol_evalx(GEN E, GEN x);3097GEN ec_bmodel(GEN e);3098GEN ec_f_evalx(GEN E, GEN x);3099GEN ec_h_evalx(GEN e, GEN x);3100GEN ec_dFdx_evalQ(GEN E, GEN Q);3101GEN ec_dFdy_evalQ(GEN E, GEN Q);3102GEN ec_dmFdy_evalQ(GEN e, GEN Q);3103GEN ec_half_deriv_2divpol_evalx(GEN E, GEN x);3104GEN ec_phi2(GEN e);3105GEN ellanal_globalred(GEN e, GEN *gr);3106GEN ellQ_get_N(GEN e);3107void ellQ_get_Nfa(GEN e, GEN *N, GEN *faN);3108GEN ellQp_Tate_uniformization(GEN E, long prec);3109GEN ellQp_AGM(GEN E, long prec);3110GEN ellQp_u(GEN E, long prec);3111GEN ellQp_u2(GEN E, long prec);3112GEN ellQp_q(GEN E, long prec);3113GEN ellQp_ab(GEN E, long prec);3114GEN ellQp_L(GEN E, long prec);3115GEN ellQp_root(GEN E, long prec);3116GEN ellQtwist_bsdperiod(GEN E, long s);3117GEN ellR_area(GEN E, long prec);3118GEN ellR_ab(GEN E, long prec);3119GEN ellR_eta(GEN E, long prec);3120GEN ellR_omega(GEN x, long prec);3121GEN ellR_roots(GEN E, long prec);3122GEN elladd(GEN e, GEN z1, GEN z2);3123GEN ellap(GEN e, GEN p);3124long ellap_CM_fast(GEN E, ulong p, long CM);3125GEN ellbsd(GEN e, long prec);3126GEN ellcard(GEN E, GEN p);3127GEN ellchangecurve(GEN e, GEN ch);3128GEN ellchangeinvert(GEN w);3129GEN ellchangepoint(GEN x, GEN ch);3130GEN ellchangepointinv(GEN x, GEN ch);3131GEN elldivpol(GEN e, long n, long v);3132GEN elleisnum(GEN om, long k, long flag, long prec);3133GEN elleta(GEN om, long prec);3134GEN ellff_get_card(GEN E);3135GEN ellff_get_gens(GEN E);3136GEN ellff_get_group(GEN E);3137GEN ellff_get_o(GEN x);3138GEN ellff_get_p(GEN E);3139GEN ellff_get_m(GEN E);3140GEN ellff_get_D(GEN E);3141GEN ellfromj(GEN j);3142GEN ellgenerators(GEN E);3143GEN ellglobalred(GEN e1);3144GEN ellgroup(GEN E, GEN p);3145GEN ellgroup0(GEN E, GEN p, long flag);3146GEN ellheight0(GEN e, GEN a, GEN b, long prec);3147GEN ellheight(GEN e, GEN a, long prec);3148GEN ellheightmatrix(GEN E, GEN x, long n);3149GEN ellheightoo(GEN e, GEN z, long prec);3150GEN ellinit(GEN x, GEN p, long prec);3151GEN ellintegralmodel(GEN e, GEN *pv);3152GEN ellintegralmodel_i(GEN e, GEN *pv);3153GEN ellisoncurve(GEN e, GEN z);3154GEN ellisotree(GEN e);3155int ellissupersingular(GEN x, GEN p);3156int elljissupersingular(GEN x);3157GEN elllseries(GEN e, GEN s, GEN A, long prec);3158GEN elllocalred(GEN e, GEN p1);3159GEN elllog(GEN e, GEN a, GEN g, GEN o);3160GEN ellminimaldisc(GEN E);3161GEN ellminimalmodel(GEN E, GEN *ptv);3162GEN ellminimaltwist(GEN e);3163GEN ellminimaltwist0(GEN e, long fl);3164GEN ellminimaltwistcond(GEN e);3165GEN ellmul(GEN e, GEN z, GEN n);3166GEN ellnf_vecarea(GEN E, long prec);3167GEN ellnf_veceta(GEN E, long prec);3168GEN ellnf_vecomega(GEN E, long prec);3169GEN ellneg(GEN e, GEN z);3170GEN ellorder(GEN e, GEN p, GEN o);3171long ellorder_Q(GEN E, GEN P);3172GEN ellordinate(GEN e, GEN x, long prec);3173GEN ellpadicheight0(GEN e, GEN p, long n, GEN P, GEN Q);3174GEN ellpadicheightmatrix(GEN e, GEN p, long n, GEN P);3175GEN ellperiods(GEN w, long flag, long prec);3176GEN ellrandom(GEN e);3177long ellrootno(GEN e, GEN p);3178long ellrootno_global(GEN e);3179GEN ellsaturation(GEN E, GEN P, long B, long prec);3180GEN ellsea(GEN E, long smallfact);3181GEN ellsigma(GEN om, GEN z, long flag, long prec);3182GEN ellsub(GEN e, GEN z1, GEN z2);3183GEN elltamagawa(GEN e);3184GEN elltaniyama(GEN e, long prec);3185GEN elltatepairing(GEN E, GEN t, GEN s, GEN m);3186GEN elltors(GEN e);3187GEN elltors0(GEN e, long flag);3188GEN elltors_psylow(GEN e, ulong p);3189GEN elltwist(GEN E, GEN D);3190GEN ellweilpairing(GEN E, GEN t, GEN s, GEN m);3191GEN ellwp(GEN w, GEN z, long prec);3192GEN ellwp0(GEN w, GEN z, long flag, long prec);3193GEN ellwpseries(GEN e, long v, long PRECDL);3194GEN ellxn(GEN e, long n, long v);3195GEN ellzeta(GEN om, GEN z, long prec);3196int oncurve(GEN e, GEN z);3197GEN orderell(GEN e, GEN p);3198GEN pointell(GEN e, GEN z, long prec);3199GEN point_to_a4a6(GEN E, GEN P, GEN p, GEN *pa4);3200GEN point_to_a4a6_Fl(GEN E, GEN P, ulong p, ulong *pa4);3201GEN zell(GEN e, GEN z, long prec);32023203/* ellpadic.c */3204GEN Qp_agm2_sequence(GEN a1, GEN b1);3205void Qp_ascending_Landen(GEN AB, GEN *ptx, GEN *pty);3206void Qp_descending_Landen(GEN AB, GEN *ptx, GEN *pty);3207GEN ellformaldifferential(GEN e, long n, long v);3208GEN ellformalexp(GEN e, long n, long v);3209GEN ellformallog(GEN e, long n, long v);3210GEN ellformalpoint(GEN e, long n, long v);3211GEN ellformalw(GEN e, long n, long v);3212GEN ellnonsingularmultiple(GEN e, GEN P);3213GEN ellpadicL(GEN E, GEN p, long n, GEN s, long r, GEN D);3214GEN ellpadicbsd(GEN E, GEN p, long n, GEN D);3215GEN ellpadicfrobenius(GEN E, ulong p, long n);3216GEN ellpadicheight(GEN e, GEN p, long n, GEN P);3217GEN ellpadiclog(GEN E, GEN p, long n, GEN P);3218GEN ellpadicregulator(GEN E, GEN p, long n, GEN S);3219GEN ellpadics2(GEN E, GEN p, long n);32203221/* ellrank.c*/32223223GEN ell2cover(GEN ell, long prec);3224GEN ellrank(GEN ell, long effort, GEN help, long prec);3225GEN ellrankinit(GEN ell, long prec);3226long hyperell_locally_soluble(GEN pol,GEN p);3227long nf_hyperell_locally_soluble(GEN nf,GEN pol,GEN p);3228long nfhilbert(GEN bnf,GEN a,GEN b);3229long nfhilbert0(GEN bnf,GEN a,GEN b,GEN p);32303231/* elltors.c */32323233long ellisdivisible(GEN E, GEN P, GEN n, GEN *Q);32343235/* ellisog.c */32363237GEN ellisogenyapply(GEN f, GEN P);3238GEN ellisogeny(GEN e, GEN G, long only_image, long vx, long vy);3239GEN ellisomat(GEN E, long p, long flag);3240GEN ellweilcurve(GEN E, GEN *pm);32413242/* ellsea.c */32433244GEN Fp_ellcard_SEA(GEN a4, GEN a6, GEN p, long smallfact);3245GEN Fq_ellcard_SEA(GEN a4, GEN a6, GEN q, GEN T, GEN p, long smallfact);3246GEN ellmodulareqn(long l, long vx, long vy);32473248/* es.c */32493250GEN externstr(const char *cmd);3251char *gp_filter(const char *s);3252GEN gpextern(const char *cmd);3253void gpsystem(const char *s);3254GEN readstr(const char *s);3255GEN GENtoGENstr_nospace(GEN x);3256GEN GENtoGENstr(GEN x);3257char* GENtoTeXstr(GEN x);3258char* GENtostr(GEN x);3259char* GENtostr_raw(GEN x);3260char* GENtostr_unquoted(GEN x);3261GEN Str(GEN g);3262GEN strexpand(GEN g);3263GEN strtex(GEN g);3264void brute(GEN g, char format, long dec);3265void dbgGEN(GEN x, long nb);3266void error0(GEN g);3267void dbg_pari_heap(void);3268int file_is_binary(FILE *f);3269void err_flush(void);3270void err_printf(const char* pat, ...);3271GEN gp_getenv(const char *s);3272void gp_fileclose(long n);3273long gp_fileextern(char *s);3274void gp_fileflush(long n);3275void gp_fileflush0(GEN n);3276long gp_fileopen(char *s, char *mode);3277GEN gp_fileread(long n);3278GEN gp_filereadstr(long n);3279void gp_filewrite(long n, const char *s);3280void gp_filewrite1(long n, const char *s);3281GEN gp_read_file(const char *s);3282GEN gp_read_str_multiline(const char *s, char *last);3283GEN gp_read_stream(FILE *f);3284GEN gp_readvec_file(char *s);3285GEN gp_readvec_stream(FILE *f);3286void gpinstall(const char *s, const char *code,3287const char *gpname, const char *lib);3288GEN gsprintf(const char *fmt, ...);3289GEN gvsprintf(const char *fmt, va_list ap);3290char* itostr(GEN x);3291void matbrute(GEN g, char format, long dec);3292char* os_getenv(const char *s);3293char* uordinal(ulong i);3294void outmat(GEN x);3295void output(GEN x);3296char* RgV_to_str(GEN g, long flag);3297void pari_add_hist(GEN z, long t, long r);3298void pari_ask_confirm(const char *s);3299void pari_fclose(pariFILE *f);3300void pari_flush(void);3301pariFILE* pari_fopen(const char *s, const char *mode);3302pariFILE* pari_fopen_or_fail(const char *s, const char *mode);3303pariFILE* pari_fopengz(const char *s);3304void pari_fprintf(FILE *file, const char *fmt, ...);3305void pari_fread_chars(void *b, size_t n, FILE *f);3306GEN pari_get_hist(long p);3307long pari_get_histrtime(long p);3308long pari_get_histtime(long p);3309char* pari_get_homedir(const char *user);3310GEN pari_histtime(long p);3311int pari_is_dir(const char *name);3312int pari_is_file(const char *name);3313int pari_last_was_newline(void);3314void pari_set_last_newline(int last);3315ulong pari_nb_hist(void);3316void pari_printf(const char *fmt, ...);3317void pari_putc(char c);3318void pari_puts(const char *s);3319pariFILE* pari_safefopen(const char *s, const char *mode);3320char* pari_sprintf(const char *fmt, ...);3321int pari_stdin_isatty(void);3322char* pari_unique_dir(const char *s);3323char* pari_unique_filename(const char *s);3324char* pari_unique_filename_suffix(const char *s, const char *suf);3325void pari_unlink(const char *s);3326void pari_vfprintf(FILE *file, const char *fmt, va_list ap);3327void pari_vprintf(const char *fmt, va_list ap);3328char* pari_vsprintf(const char *fmt, va_list ap);3329char* path_expand(const char *s);3330void out_print0(PariOUT *out, const char *sep, GEN g, long flag);3331void out_printf(PariOUT *out, const char *fmt, ...);3332void out_putc(PariOUT *out, char c);3333void out_puts(PariOUT *out, const char *s);3334void out_term_color(PariOUT *out, long c);3335void out_vprintf(PariOUT *out, const char *fmt, va_list ap);3336char* pari_sprint0(const char *msg, GEN g, long flag);3337void print(GEN g);3338void printp(GEN g);3339enum { f_RAW = 0, f_PRETTYMAT = 1, f_PRETTY = 3, f_TEX = 4 };3340void print0(GEN g, long flag);3341void print1(GEN g);3342void printf0(const char *fmt, GEN args);3343void printsep(const char *s, GEN g);3344void printsep1(const char *s, GEN g);3345void printtex(GEN g);3346char* stack_sprintf(const char *fmt, ...);3347void str_init(pari_str *S, int use_stack);3348void str_printf(pari_str *S, const char *fmt, ...);3349void str_putc(pari_str *S, char c);3350void str_puts(pari_str *S, const char *s);3351void strftime_expand(const char *s, char *buf, long max);3352GEN strprintf(const char *fmt, GEN args);3353FILE* switchin(const char *name);3354void switchout(const char *name);3355void term_color(long c);3356char* term_get_color(char *s, long c);3357void texe(GEN g, char format, long dec);3358void warning0(GEN g);3359void write0(const char *s, GEN g);3360void write1(const char *s, GEN g);3361void writebin(const char *name, GEN x);3362void writetex(const char *s, GEN g);33633364/* eval.c */33653366enum { br_NONE = 0, br_BREAK, br_NEXT, br_MULTINEXT, br_RETURN };3367void bincopy_relink(GEN C, GEN vi);3368GEN bitprecision0(GEN x,long n);3369GEN bitprecision00(GEN x,GEN n);3370GEN break0(long n);3371GEN call0(GEN fun, GEN args);3372GEN closure_callgen0prec(GEN C, long prec);3373GEN closure_callgen1(GEN C, GEN x);3374GEN closure_callgen1prec(GEN C, GEN x, long prec);3375GEN closure_callgen2(GEN C, GEN x, GEN y);3376GEN closure_callgenall(GEN C, long n, ...);3377GEN closure_callgenvec(GEN C, GEN args);3378GEN closure_callgenvecdef(GEN C, GEN args, GEN def);3379GEN closure_callgenvecdefprec(GEN C, GEN args, GEN def, long prec);3380GEN closure_callgenvecprec(GEN C, GEN args, long prec);3381void closure_callvoid1(GEN C, GEN x);3382long closure_context(long start, long level);3383void closure_disassemble(GEN n);3384void closure_err(long level);3385GEN closure_evalbrk(GEN C, long *status);3386GEN closure_evalgen(GEN C);3387GEN closure_evalnobrk(GEN C);3388GEN closure_evalres(GEN C);3389void closure_evalvoid(GEN C);3390const char * closure_func_err(void);3391GEN closure_trapgen(GEN C, long numerr);3392GEN copybin_unlink(GEN C);3393long getlocalprec(long prec);3394long getlocalbitprec(long bit);3395GEN get_lex(long vn);3396long get_localprec(void);3397long get_localbitprec(void);3398GEN gp_call(void *E, GEN x);3399GEN gp_callprec(void *E, GEN x, long prec);3400GEN gp_call2(void *E, GEN x, GEN y);3401long gp_callbool(void *E, GEN x);3402long gp_callvoid(void *E, GEN x);3403GEN gp_eval(void *E, GEN x);3404long gp_evalbool(void *E, GEN x);3405GEN gp_evalprec(void *E, GEN x, long prec);3406GEN gp_evalupto(void *E, GEN x);3407long gp_evalvoid(void *E, GEN x);3408void localprec(GEN p);3409void localbitprec(GEN p);3410long loop_break(void);3411GEN next0(long n);3412GEN pareval(GEN C);3413GEN pari_self(void);3414GEN parsum(GEN a, GEN b, GEN code);3415GEN parvector(long n, GEN code);3416void pop_lex(long n);3417void pop_localprec(void);3418GEN precision0(GEN x,long n);3419GEN precision00(GEN x, GEN n);3420void push_lex(GEN a, GEN C);3421void push_localbitprec(long p);3422void push_localprec(long p);3423GEN return0(GEN x);3424void set_lex(long vn, GEN x);34253426/* forprime.c */34273428int forcomposite_init(forcomposite_t *C, GEN a, GEN b);3429GEN forcomposite_next(forcomposite_t *C);3430GEN forprime_next(forprime_t *T);3431int forprime_init(forprime_t *T, GEN a, GEN b);3432int forprimestep_init(forprime_t *T, GEN a, GEN b, GEN q);3433byteptr initprimes(ulong maxnum, long *lenp, ulong *lastp);3434void initprimetable(ulong maxnum);3435ulong init_primepointer_geq(ulong a, byteptr *pd);3436ulong init_primepointer_gt(ulong a, byteptr *pd);3437ulong init_primepointer_leq(ulong a, byteptr *pd);3438ulong init_primepointer_lt(ulong a, byteptr *pd);3439ulong maxprime(void);3440ulong maxprimeN(void);3441void maxprime_check(ulong c);3442void pari_init_primes(ulong maxprime);3443ulong u_forprime_next(forprime_t *T);3444int u_forprime_init(forprime_t *T, ulong a, ulong b);3445void u_forprime_restrict(forprime_t *T, ulong c);3446int u_forprime_arith_init(forprime_t *T, ulong a, ulong b, ulong c, ulong q);34473448/* FF.c */34493450GEN FF_1(GEN a);3451GEN FF_Frobenius(GEN x, long e);3452GEN FF_Z_Z_muldiv(GEN x, GEN y, GEN z);3453GEN FF_Q_add(GEN x, GEN y);3454GEN FF_Z_add(GEN a, GEN b);3455GEN FF_Z_mul(GEN a, GEN b);3456GEN FF_add(GEN a, GEN b);3457GEN FF_charpoly(GEN x);3458GEN FF_conjvec(GEN x);3459GEN FF_div(GEN a, GEN b);3460GEN FF_ellcard(GEN E);3461GEN FF_ellcard_SEA(GEN E, long smallfact);3462GEN FF_ellgens(GEN E);3463GEN FF_ellgroup(GEN E, GEN *m);3464GEN FF_elllog(GEN E, GEN P, GEN Q, GEN o);3465GEN FF_ellmul(GEN E, GEN P, GEN n);3466GEN FF_ellorder(GEN E, GEN P, GEN o);3467GEN FF_elltwist(GEN E);3468GEN FF_ellrandom(GEN E);3469GEN FF_elltatepairing(GEN E, GEN P, GEN Q, GEN m);3470GEN FF_ellweilpairing(GEN E, GEN P, GEN Q, GEN m);3471int FF_equal(GEN a, GEN b);3472int FF_equal0(GEN x);3473int FF_equal1(GEN x);3474int FF_equalm1(GEN x);3475long FF_f(GEN x);3476GEN FF_gen(GEN x);3477GEN FF_inv(GEN a);3478long FF_issquare(GEN x);3479long FF_issquareall(GEN x, GEN *pt);3480long FF_ispower(GEN x, GEN K, GEN *pt);3481GEN FF_log(GEN a, GEN b, GEN o);3482GEN FF_map(GEN m, GEN x);3483GEN FF_minpoly(GEN x);3484GEN FF_mod(GEN x);3485GEN FF_mul(GEN a, GEN b);3486GEN FF_mul2n(GEN a, long n);3487GEN FF_neg(GEN a);3488GEN FF_neg_i(GEN a);3489GEN FF_norm(GEN x);3490GEN FF_order(GEN x, GEN o);3491GEN FF_p(GEN x);3492GEN FF_p_i(GEN x);3493GEN FF_pow(GEN x, GEN n);3494GEN FF_primroot(GEN x, GEN *o);3495GEN FF_q(GEN x);3496int FF_samefield(GEN x, GEN y);3497GEN FF_sqr(GEN a);3498GEN FF_sqrt(GEN a);3499GEN FF_sqrtn(GEN x, GEN n, GEN *zetan);3500GEN FF_sub(GEN x, GEN y);3501GEN FF_to_F2xq(GEN x);3502GEN FF_to_F2xq_i(GEN x);3503GEN FF_to_Flxq(GEN x);3504GEN FF_to_Flxq_i(GEN x);3505GEN FF_to_FpXQ(GEN x);3506GEN FF_to_FpXQ_i(GEN x);3507GEN FF_trace(GEN x);3508long FF_var(GEN x);3509GEN FF_zero(GEN a);3510GEN FFM_FFC_invimage(GEN M, GEN C, GEN ff);3511GEN FFM_FFC_gauss(GEN M, GEN C, GEN ff);3512GEN FFM_FFC_mul(GEN M, GEN C, GEN ff);3513GEN FFM_deplin(GEN M, GEN ff);3514GEN FFM_det(GEN M, GEN ff);3515GEN FFM_gauss(GEN M, GEN N, GEN ff);3516GEN FFM_image(GEN M, GEN ff);3517GEN FFM_indexrank(GEN M, GEN ff);3518GEN FFM_inv(GEN M, GEN ff);3519GEN FFM_invimage(GEN M, GEN N, GEN ff);3520GEN FFM_ker(GEN M, GEN ff);3521GEN FFM_mul(GEN M, GEN N, GEN ff);3522long FFM_rank(GEN M, GEN ff);3523GEN FFM_suppl(GEN M, GEN ff);3524GEN FFX_add(GEN Pf, GEN Qf, GEN ff);3525GEN FFX_ddf(GEN f, GEN x);3526GEN FFX_degfact(GEN Pf, GEN ff);3527GEN FFX_disc(GEN Pf, GEN ff);3528GEN FFX_extgcd(GEN Pf, GEN Qf, GEN ff, GEN *pt_Uf, GEN *pt_Vf);3529GEN FFX_factor(GEN f, GEN x);3530GEN FFX_factor_squarefree(GEN f, GEN x);3531GEN FFX_gcd(GEN Pf, GEN Qf, GEN ff);3532GEN FFX_halfgcd(GEN Pf, GEN Qf, GEN ff);3533long FFX_ispower(GEN Pf, long k, GEN ff, GEN *pt_r);3534GEN FFX_mul(GEN Pf, GEN Qf, GEN ff);3535GEN FFX_preimage(GEN x, GEN F, GEN y);3536GEN FFX_preimagerel(GEN x, GEN F, GEN y);3537GEN FFX_rem(GEN Pf, GEN Qf, GEN ff);3538GEN FFX_resultant(GEN Pf, GEN Qf, GEN ff);3539GEN FFX_roots(GEN f, GEN x);3540GEN FFX_sqr(GEN Pf, GEN ff);3541GEN FFXQ_inv(GEN Pf, GEN Qf, GEN ff);3542GEN FFXQ_minpoly(GEN Pf, GEN Qf, GEN ff);3543GEN FFXQ_mul(GEN Pf, GEN Qf, GEN Sf, GEN ff);3544GEN FFXQ_sqr(GEN Pf, GEN Qf, GEN ff);3545GEN FqX_to_FFX(GEN x, GEN ff);3546GEN Fq_to_FF(GEN x, GEN ff);3547GEN Z_FF_div(GEN a, GEN b);3548GEN ffembed(GEN a, GEN b);3549GEN ffextend(GEN a, GEN P, long v);3550GEN fffrobenius(GEN m, long n);3551GEN ffgen(GEN T, long v);3552GEN ffinvmap(GEN m);3553GEN fflog(GEN x, GEN g, GEN o);3554GEN ffmap(GEN m, GEN x);3555GEN ffmaprel(GEN m, GEN x);3556GEN ffcompomap(GEN m, GEN n);3557GEN fforder(GEN x, GEN o);3558GEN ffprimroot(GEN x, GEN *o);3559GEN ffrandom(GEN ff);3560int Rg_is_FF(GEN c, GEN *ff);3561int RgC_is_FFC(GEN x, GEN *ff);3562int RgM_is_FFM(GEN x, GEN *ff);3563GEN p_to_FF(GEN p, long v);3564GEN Tp_to_FF(GEN T, GEN p);35653566/* galconj.c */35673568GEN checkgal(GEN gal);3569GEN checkgroup(GEN g, GEN *S);3570GEN checkgroupelts(GEN gal);3571GEN embed_disc(GEN r, long r1, long prec);3572GEN embed_roots(GEN r, long r1);3573GEN galois_group(GEN gal);3574GEN galoisconj(GEN nf, GEN d);3575GEN galoisconj0(GEN nf, long flag, GEN d, long prec);3576GEN galoisconjclasses(GEN gal);3577GEN galoisexport(GEN gal, long format);3578GEN galoisfixedfield(GEN gal, GEN v, long flag, long y);3579GEN galoisidentify(GEN gal);3580GEN galoisinit(GEN nf, GEN den);3581GEN galoisisabelian(GEN gal, long flag);3582long galoisisnormal(GEN gal, GEN sub);3583GEN galoispermtopol(GEN gal, GEN perm);3584GEN galoissplittinginit(GEN nf, GEN deg);3585GEN galoissubgroups(GEN G);3586GEN galoissubfields(GEN G, long flag, long v);3587long numberofconjugates(GEN T, long pdepart);35883589/* galois.c */35903591GEN polgalois(GEN x, long prec);35923593/* galpol.c */35943595GEN galoisnbpol(long a);3596GEN galoisgetgroup(long a, long b);3597GEN galoisgetname(long a, long b);3598GEN galoisgetpol(long a, long b, long s);35993600/* gen1.c */3601GEN conj_i(GEN x);3602GEN conjvec(GEN x,long prec);3603GEN gadd(GEN x, GEN y);3604GEN gaddsg(long x, GEN y);3605GEN gconj(GEN x);3606GEN gdiv(GEN x, GEN y);3607GEN gdivgs(GEN x, long s);3608GEN ginv(GEN x);3609GEN gmul(GEN x, GEN y);3610GEN gmul2n(GEN x, long n);3611GEN gmulsg(long s, GEN y);3612GEN gsqr(GEN x);3613GEN gsub(GEN x, GEN y);3614GEN gsubsg(long x, GEN y);3615GEN mulcxI(GEN x);3616GEN mulcxmI(GEN x);3617GEN mulcxpowIs(GEN x, long k);3618GEN Qdivii(GEN x1, GEN x2);3619GEN Qdiviu(GEN x, ulong y);3620GEN Qdivis(GEN x, long y);3621GEN ser_normalize(GEN x);36223623/* gen2.c */36243625GEN gassoc_proto(GEN f(GEN,GEN),GEN,GEN);3626GEN map_proto_G(GEN f(GEN), GEN x);3627GEN map_proto_lG(long f(GEN), GEN x);3628GEN map_proto_lGL(long f(GEN,long), GEN x, long y);36293630long Q_lval(GEN x, ulong p);3631long Q_lvalrem(GEN x, ulong p, GEN *y);3632long Q_pval(GEN x, GEN p);3633long Q_pvalrem(GEN x, GEN p, GEN *y);3634long RgX_val(GEN x);3635long RgX_valrem(GEN x, GEN *z);3636long RgX_valrem_inexact(GEN x, GEN *Z);3637long RgXV_maxdegree(GEN x);3638int ZV_Z_dvd(GEN v, GEN p);3639long ZV_pval(GEN x, GEN p);3640long ZV_pvalrem(GEN x, GEN p, GEN *px);3641long ZV_lval(GEN x, ulong p);3642long ZV_lvalrem(GEN x, ulong p, GEN *px);3643long ZX_lvalrem(GEN x, ulong p, GEN *px);3644long ZX_lval(GEN x, ulong p);3645long ZX_pval(GEN x, GEN p);3646long ZX_pvalrem(GEN x, GEN p, GEN *px);3647long Z_lval(GEN n, ulong p);3648long Z_lvalrem(GEN n, ulong p, GEN *py);3649long Z_lvalrem_stop(GEN *n, ulong p, int *stop);3650long Z_pval(GEN n, GEN p);3651long Z_pvalrem(GEN x, GEN p, GEN *py);3652GEN cgetp(GEN x);3653GEN cvstop2(long s, GEN y);3654GEN cvtop(GEN x, GEN p, long l);3655GEN cvtop2(GEN x, GEN y);3656int cx_approx_equal(GEN a, GEN b);3657GEN gabs(GEN x, long prec);3658void gaffect(GEN x, GEN y);3659void gaffsg(long s, GEN x);3660int gcmp(GEN x, GEN y);3661int gequal0(GEN x);3662int gequal1(GEN x);3663int gequalX(GEN x);3664int gequalm1(GEN x);3665int gcmpsg(long x, GEN y);3666GEN gcvtop(GEN x, GEN p, long r);3667int gequal(GEN x, GEN y);3668int gequalsg(long s, GEN x);3669long gexpo(GEN x);3670long gexpo_safe(GEN x);3671GEN gpexponent(GEN x);3672GEN gpvaluation(GEN x, GEN p);3673long gvaluation(GEN x, GEN p);3674int gidentical(GEN x, GEN y);3675long glength(GEN x);3676GEN gmax(GEN x, GEN y);3677GEN gmaxgs(GEN x, long y);3678GEN gmin(GEN x, GEN y);3679GEN gmings(GEN x, long y);3680GEN gneg(GEN x);3681GEN gneg_i(GEN x);3682int gsigne(GEN x);3683GEN gtolist(GEN x);3684long gtolong(GEN x);3685int lexcmp(GEN x, GEN y);3686GEN listinsert(GEN list, GEN object, long index);3687void listpop(GEN L, long index);3688void listpop0(GEN L, long index);3689GEN listput(GEN list, GEN object, long index);3690GEN listput0(GEN list, GEN object, long index);3691void listsort(GEN list, long flag);3692GEN matsize(GEN x);3693GEN mklist(void);3694GEN mklist_typ(long t);3695GEN mklistcopy(GEN x);3696GEN mkmap(void);3697GEN normalize(GEN x);3698GEN normalizepol(GEN x);3699GEN normalizepol_approx(GEN x, long lx);3700GEN normalizepol_lg(GEN x, long lx);3701ulong padic_to_Fl(GEN x, ulong p);3702GEN padic_to_Fp(GEN x, GEN Y);3703GEN quadtofp(GEN x, long l);3704long sizedigit(GEN x);3705long u_lval(ulong x, ulong p);3706long u_lvalrem(ulong x, ulong p, ulong *py);3707long u_lvalrem_stop(ulong *n, ulong p, int *stop);3708long u_pval(ulong x, GEN p);3709long u_pvalrem(ulong x, GEN p, ulong *py);3710long vecindexmax(GEN x);3711long vecindexmin(GEN x);3712GEN vecmax0(GEN x, GEN *pv);3713GEN vecmax(GEN x);3714GEN vecmin0(GEN x, GEN *pv);3715GEN vecmin(GEN x);3716long z_lval(long s, ulong p);3717long z_lvalrem(long s, ulong p, long *py);3718long z_pval(long n, GEN p);3719long z_pvalrem(long n, GEN p, long *py);3720long zx_lval(GEN f, long p);37213722/* Ser.c */37233724GEN RgX_to_ser(GEN x, long l);3725GEN RgX_to_ser_inexact(GEN x, long l);3726GEN gtoser(GEN x, long v, long d);3727GEN gtoser_prec(GEN x, long v, long d);3728GEN rfrac_to_ser(GEN x, long l);3729GEN rfracrecip_to_ser_absolute(GEN R, long l);3730long rfracrecip(GEN *pn, GEN *pd);3731GEN scalarser(GEN x, long v, long prec);3732GEN sertoser(GEN x, long prec);3733GEN toser_i(GEN x);3734GEN RgV_to_ser(GEN x, long v, long l);3735GEN Ser0(GEN x, long v, GEN d, long prec);37363737/* gen3.c */37383739GEN padic_to_Q(GEN x);3740GEN padic_to_Q_shallow(GEN x);3741GEN QpV_to_QV(GEN v);3742GEN RgC_RgV_mulrealsym(GEN x, GEN y);3743GEN RgM_mulreal(GEN x, GEN y);3744GEN RgX_cxeval(GEN T, GEN u, GEN ui);3745GEN RgX_deflate_max(GEN x0, long *m);3746long RgX_deflate_order(GEN x);3747long ZX_deflate_order(GEN x);3748GEN ZX_deflate_max(GEN x, long *m);3749long RgX_degree(GEN x,long v);3750GEN RgX_integ(GEN x);3751GEN ceil_safe(GEN x);3752GEN ceilr(GEN x);3753GEN centerlift(GEN x);3754GEN centerlift0(GEN x,long v);3755GEN compo(GEN x, long n);3756GEN deg1pol(GEN x1, GEN x0,long v);3757GEN deg1pol_shallow(GEN x1, GEN x0,long v);3758GEN deg2pol_shallow(GEN x2, GEN x1, GEN x0,long v);3759long degree(GEN x);3760GEN denom(GEN x);3761GEN denom_i(GEN x);3762GEN denominator(GEN x, GEN D);3763GEN deriv(GEN x, long v);3764GEN derivn(GEN x, long n, long v);3765GEN derivser(GEN x);3766GEN diffop(GEN x, GEN v, GEN dv);3767GEN diffop0(GEN x, GEN v, GEN dv, long n);3768GEN diviiround(GEN x, GEN y);3769GEN divrem(GEN x, GEN y, long v);3770GEN floor_safe(GEN x);3771GEN gceil(GEN x);3772GEN gcvtoi(GEN x, long *e);3773GEN gdeflate(GEN x, long v, long d);3774GEN gdivent(GEN x, GEN y);3775GEN gdiventgs(GEN x, long y);3776GEN gdiventsg(long x, GEN y);3777GEN gdiventres(GEN x, GEN y);3778GEN gdivmod(GEN x, GEN y, GEN *pr);3779GEN gdivround(GEN x, GEN y);3780int gdvd(GEN x, GEN y);3781GEN geq(GEN x, GEN y);3782GEN geval(GEN x);3783GEN gfloor(GEN x);3784GEN gtrunc2n(GEN x, long s);3785GEN gfrac(GEN x);3786GEN gge(GEN x, GEN y);3787GEN ggrando(GEN x, long n);3788GEN ggt(GEN x, GEN y);3789GEN gimag(GEN x);3790GEN gisexactzero(GEN g);3791GEN gle(GEN x, GEN y);3792GEN glt(GEN x, GEN y);3793GEN gmod(GEN x, GEN y);3794GEN gmodgs(GEN x, long y);3795GEN gmodsg(long x, GEN y);3796GEN gmodulo(GEN x,GEN y);3797GEN gmodulsg(long x, GEN y);3798GEN gmodulss(long x, long y);3799GEN gne(GEN x, GEN y);3800GEN gnot(GEN x);3801GEN gpolvar(GEN y);3802GEN gppadicprec(GEN x, GEN p);3803GEN gppoldegree(GEN x, long v);3804long gprecision(GEN x);3805GEN gpserprec(GEN x, long v);3806GEN greal(GEN x);3807GEN grndtoi(GEN x, long *e);3808GEN ground(GEN x);3809GEN gshift(GEN x, long n);3810GEN gsubst(GEN x, long v, GEN y);3811GEN gsubstpol(GEN x, GEN v, GEN y);3812GEN gsubstvec(GEN x, GEN v, GEN y);3813GEN gtocol(GEN x);3814GEN gtocol0(GEN x, long n);3815GEN gtocolrev(GEN x);3816GEN gtocolrev0(GEN x, long n);3817GEN gtopoly(GEN x, long v);3818GEN gtopolyrev(GEN x, long v);3819GEN gtovec(GEN x);3820GEN gtovec0(GEN x, long n);3821GEN gtovecrev(GEN x);3822GEN gtovecrev0(GEN x, long n);3823GEN gtovecsmall(GEN x);3824GEN gtovecsmall0(GEN x, long n);3825GEN gtrunc(GEN x);3826long gvar(GEN x);3827long gvar2(GEN x);3828GEN hqfeval(GEN q, GEN x);3829GEN imag_i(GEN x);3830GEN integ(GEN x, long v);3831GEN integser(GEN x);3832GEN ser_inv(GEN b);3833int iscomplex(GEN x);3834int isexactzero(GEN g);3835int isrationalzeroscalar(GEN g);3836int isinexact(GEN x);3837int isinexactreal(GEN x);3838int isint(GEN n, GEN *ptk);3839int isrationalzero(GEN g);3840int issmall(GEN n, long *ptk);3841GEN lift(GEN x);3842GEN lift_shallow(GEN x);3843GEN lift0(GEN x,long v);3844GEN liftall(GEN x);3845GEN liftall_shallow(GEN x);3846GEN liftint(GEN x);3847GEN liftint_shallow(GEN x);3848GEN liftpol(GEN x);3849GEN liftpol_shallow(GEN x);3850GEN mkcoln(long n, ...);3851GEN mkintn(long n, ...);3852GEN mkpoln(long n, ...);3853GEN mkvecn(long n, ...);3854GEN mkvecsmalln(long n, ...);3855GEN modRr_safe(GEN x, GEN y);3856GEN mulreal(GEN x, GEN y);3857GEN numer(GEN x);3858GEN numer_i(GEN x);3859GEN numerator(GEN x, GEN D);3860long padicprec(GEN x, GEN p);3861long padicprec_relative(GEN x);3862GEN polcoef(GEN x, long n, long v);3863GEN polcoef_i(GEN x, long n, long v);3864long poldegree(GEN x,long v);3865GEN poleval(GEN x, GEN y);3866GEN pollead(GEN x,long v);3867long precision(GEN x);3868GEN qf_apply_RgM(GEN q, GEN M);3869GEN qf_apply_ZM(GEN q, GEN M);3870GEN qfb_apply_ZM(GEN q, GEN M);3871GEN qfbil(GEN x, GEN y, GEN q);3872GEN qfeval(GEN q, GEN x);3873GEN qfeval0(GEN q, GEN x, GEN y);3874GEN qfevalb(GEN q, GEN x, GEN y);3875GEN qfnorm(GEN x, GEN q);3876GEN real_i(GEN x);3877GEN round0(GEN x, GEN *pte);3878GEN roundr(GEN x);3879GEN roundr_safe(GEN x);3880GEN scalarpol(GEN x, long v);3881GEN scalarpol_shallow(GEN x, long v);3882GEN ser_unscale(GEN P, GEN h);3883long serprec(GEN x, long v);3884GEN serreverse(GEN x);3885GEN simplify(GEN x);3886GEN simplify_shallow(GEN x);3887GEN tayl(GEN x, long v, long precdl);3888GEN trunc0(GEN x, GEN *pte);3889GEN uu32toi(ulong a, ulong b);3890GEN uu32toineg(ulong a, ulong b);3891GEN vars_sort_inplace(GEN z);3892GEN vars_to_RgXV(GEN h);3893GEN variables_vecsmall(GEN x);3894GEN variables_vec(GEN x);38953896/* genus2red.c */38973898GEN genus2red(GEN PQ, GEN p);38993900/* groupid.c */39013902long group_ident(GEN G, GEN S);3903long group_ident_trans(GEN G, GEN S);39043905/* hash.c */39063907hashtable *hash_create_ulong(ulong s, long stack);3908hashtable *hash_create_str(ulong s, long stack);3909hashtable *hash_create(ulong minsize, ulong (*hash)(void*), int (*eq)(void*,void*), int use_stack);3910void hash_dbg(hashtable *h);3911GEN hash_haskey_GEN(hashtable *h, void *k);3912int hash_haskey_long(hashtable *h, void *k, long *v);3913void hash_init(hashtable *h, ulong minsize, ulong (*hash)(void*),3914int (*eq)(void*,void*), int use_stack);3915void hash_init_GEN(hashtable *h, ulong minsize, int (*eq)(GEN,GEN), int use_stack);3916void hash_init_ulong(hashtable *h, ulong minsize, int use_stack);3917void hash_insert(hashtable *h, void *k, void *v);3918void hash_insert_long(hashtable *h, void *k, long v);3919void hash_insert2(hashtable *h, void *k, void *v, ulong hash);3920GEN hash_keys(hashtable *h);3921GEN hash_values(hashtable *h);3922hashentry *hash_search(hashtable *h, void *k);3923hashentry *hash_search2(hashtable *h, void *k, ulong hash);3924hashentry *hash_select(hashtable *h, void *k, void *E,int(*select)(void *,hashentry *));3925hashentry *hash_remove(hashtable *h, void *k);3926hashentry *hash_remove_select(hashtable *h, void *k, void *E, int (*select)(void*,hashentry*));3927void hash_destroy(hashtable *h);3928ulong hash_GEN(GEN x);3929ulong hash_zv(GEN x);39303931/* hyperell.c */39323933GEN hyperellpadicfrobenius0(GEN x, GEN p, long e);3934GEN hyperellpadicfrobenius(GEN x, ulong p, long e);3935GEN hyperellcharpoly(GEN x);3936GEN nfhyperellpadicfrobenius(GEN H, GEN T, ulong p, long n);39373938/* hypergeom.c */3939GEN hypergeom(GEN vnum, GEN vden, GEN z, long prec);3940GEN airy(GEN z, long prec);39413942/* hnf_snf.c */39433944GEN RgM_hnfall(GEN A, GEN *pB, long remove);3945GEN ZM_hnf(GEN x);3946GEN ZM_hnf_knapsack(GEN x);3947GEN ZM_hnfall(GEN A, GEN *ptB, long remove);3948GEN ZM_hnfall_i(GEN A, GEN *ptB, long remove);3949GEN ZM_hnfcenter(GEN M);3950GEN ZM_hnflll(GEN A, GEN *ptB, int remove);3951GEN ZV_extgcd(GEN A);3952GEN ZV_snfall(GEN D, GEN *pU, GEN *pV);3953GEN ZV_snf_group(GEN d, GEN *newU, GEN *newUi);3954void ZV_snf_trunc(GEN D);3955GEN ZM_hnfmod(GEN x, GEN d);3956GEN ZM_hnfmodall(GEN x, GEN dm, long flag);3957GEN ZM_hnfmodall_i(GEN x, GEN dm, long flag);3958GEN ZM_hnfmodid(GEN x, GEN d);3959GEN ZM_hnfmodprime(GEN x, GEN p);3960GEN ZM_hnfperm(GEN A, GEN *ptU, GEN *ptperm);3961void ZM_snfclean(GEN d, GEN u, GEN v);3962GEN ZM_snf(GEN x);3963GEN ZM_snf_group(GEN H, GEN *newU, GEN *newUi);3964GEN ZM_snfall(GEN x, GEN *ptU, GEN *ptV);3965GEN ZM_snfall_i(GEN x, GEN *ptU, GEN *ptV, long flag);3966GEN zlm_echelon(GEN x, long early_abort, ulong p, ulong pm);3967GEN ZpM_echelon(GEN x, long early_abort, GEN p, GEN pm);3968GEN gsmith(GEN x);3969GEN gsmithall(GEN x);3970GEN hnf(GEN x);3971GEN hnf_divscale(GEN A, GEN B,GEN t);3972GEN hnf_invscale(GEN A, GEN t);3973GEN hnf_solve(GEN A, GEN B);3974GEN hnf_invimage(GEN A, GEN b);3975GEN hnfall(GEN x);3976int hnfdivide(GEN A, GEN B);3977GEN hnflll(GEN x);3978GEN hnfmerge_get_1(GEN A, GEN B);3979GEN hnfmod(GEN x, GEN d);3980GEN hnfmodid(GEN x,GEN p);3981GEN hnfperm(GEN x);3982GEN matfrobenius(GEN M, long flag, long v);3983GEN mathnf0(GEN x, long flag);3984GEN matsnf0(GEN x, long flag);3985GEN smith(GEN x);3986GEN smithall(GEN x);3987GEN smithclean(GEN z);39883989/* ifactor1.c */39903991GEN Z_ECM(GEN N, long rounds, long seed, ulong B1);3992GEN Z_factor(GEN n);3993GEN Z_factor_limit(GEN n, ulong all);3994GEN Z_factor_until(GEN n, GEN limit);3995long Z_issmooth(GEN m, ulong lim);3996GEN Z_issmooth_fact(GEN m, ulong lim);3997long Z_issquarefree(GEN x);3998GEN Z_pollardbrent(GEN n, long rounds, long seed);3999GEN absZ_factor(GEN n);4000GEN absZ_factor_limit(GEN n, ulong all);4001GEN absZ_factor_limit_strict(GEN n, ulong all, GEN *pU);4002long bigomega(GEN n);4003long bigomegau(ulong n);4004GEN core(GEN n);4005ulong coreu(ulong n);4006ulong coreu_fact(GEN f);4007GEN eulerphi(GEN n);4008ulong eulerphiu(ulong n);4009ulong eulerphiu_fact(GEN f);4010GEN factorint(GEN n, long flag);4011GEN factoru(ulong n);4012int ifac_isprime(GEN x);4013int ifac_next(GEN *part, GEN *p, long *e);4014int ifac_read(GEN part, GEN *p, long *e);4015void ifac_skip(GEN part);4016GEN ifac_start(GEN n, int moebius);4017int is_357_power(GEN x, GEN *pt, ulong *mask);4018int is_pth_power(GEN x, GEN *pt, forprime_t *T, ulong cutoffbits);4019long ispowerful(GEN n);4020long issquarefree(GEN x);4021long istotient(GEN n, GEN *px);4022long moebius(GEN n);4023long moebiusu(ulong n);4024long moebiusu_fact(GEN f);4025GEN nextprime(GEN n);4026GEN numdiv(GEN n);4027long numdivu(long N);4028long numdivu_fact(GEN fa);4029long omega(GEN n);4030long omegau(ulong n);4031GEN precprime(GEN n);4032ulong radicalu(ulong n);4033GEN sumdiv(GEN n);4034GEN sumdivk(GEN n,long k);4035ulong tridiv_bound(GEN n);4036int uis_357_power(ulong x, ulong *pt, ulong *mask);4037int uis_357_powermod(ulong x, ulong *mask);4038long uissquarefree(ulong n);4039long uissquarefree_fact(GEN f);4040ulong unextprime(ulong n);4041ulong uprecprime(ulong n);4042GEN vecfactorsquarefreeu(ulong a, ulong b);4043GEN vecfactorsquarefreeu_coprime(ulong a, ulong b, GEN P);4044GEN vecfactoru_i(ulong a, ulong b);4045GEN vecfactoru(ulong a, ulong b);4046GEN vecfactoroddu_i(ulong a, ulong b);4047GEN vecfactoroddu(ulong a, ulong b);4048GEN vecsquarefreeu(ulong a, ulong b);40494050/* init.c */40514052int chk_gerepileupto(GEN x);4053GENbin* copy_bin(GEN x);4054GENbin* copy_bin_canon(GEN x);4055void dbg_gerepile(pari_sp av);4056void dbg_gerepileupto(GEN q);4057GEN errname(GEN err);4058GEN gclone(GEN x);4059GEN gcloneref(GEN x);4060void gclone_refc(GEN x);4061GEN gcopy(GEN x);4062GEN gcopy_avma(GEN x, pari_sp *AVMA);4063GEN gcopy_lg(GEN x, long lx);4064GEN gerepile(pari_sp ltop, pari_sp lbot, GEN q);4065void gerepileallsp(pari_sp av, pari_sp tetpil, int n, ...);4066void gerepilecoeffssp(pari_sp av, pari_sp tetpil, long *g, int n);4067void gerepilemanysp(pari_sp av, pari_sp tetpil, GEN* g[], int n);4068GEN getheap(void);4069void gp_context_save(struct gp_context* rec);4070void gp_context_restore(struct gp_context* rec);4071long gsizeword(GEN x);4072long gsizebyte(GEN x);4073void gunclone(GEN x);4074void gunclone_deep(GEN x);4075GEN listcopy(GEN x);4076GEN listinit(GEN x);4077void msgtimer(const char *format, ...);4078long name_numerr(const char *s);4079void new_chunk_resize(size_t x);4080GEN newblock(size_t n);4081const char * numerr_name(long errnum);4082GEN obj_check(GEN S, long K);4083GEN obj_checkbuild(GEN S, long tag, GEN (*build)(GEN));4084GEN obj_checkbuild_padicprec(GEN S, long tag, GEN (*build)(GEN,long), long prec);4085GEN obj_checkbuild_realprec(GEN S, long tag, GEN (*build)(GEN,long), long prec);4086GEN obj_checkbuild_prec(GEN S, long tag, GEN (*build)(GEN,long), long (*pr)(GEN), long prec);4087void obj_free(GEN S);4088GEN obj_init(long d, long n);4089GEN obj_insert(GEN S, long K, GEN O);4090GEN obj_insert_shallow(GEN S, long K, GEN O);4091GEN obj_reinit(GEN S);4092void (*os_signal(int sig, void (*f)(int)))(int);4093void pari_add_function(entree *ep);4094void pari_add_module(entree *ep);4095void pari_add_defaults_module(entree *ep);4096void pari_close(void);4097void pari_close_opts(ulong init_opts);4098GEN pari_compile_str(const char *lex);4099int pari_daemon(void);4100void pari_err(int numerr, ...);4101GEN pari_err_last(void);4102char * pari_err2str(GEN err);4103void pari_init_opts(size_t parisize, ulong maxprime, ulong init_opts);4104void pari_init(size_t parisize, ulong maxprime);4105void pari_stackcheck_init(void *pari_stack_base);4106void pari_sighandler(int sig);4107void pari_sig_init(void (*f)(int));4108void pari_thread_alloc(struct pari_thread *t, size_t s, GEN arg);4109void pari_thread_close(void);4110void pari_thread_free(struct pari_thread *t);4111void pari_thread_init(void);4112GEN pari_thread_start(struct pari_thread *t);4113void pari_thread_valloc(struct pari_thread *t, size_t s, size_t v, GEN arg);4114GEN pari_version(void);4115void pari_warn(int numerr, ...);4116void paristack_newrsize(ulong newsize);4117void paristack_resize(ulong newsize);4118void paristack_setsize(size_t rsize, size_t vsize);4119void parivstack_resize(ulong newsize);4120void parivstack_reset(void);4121void setalldebug(long lvl);4122GEN setdebug(const char *s, long lvl);4123void shiftaddress(GEN x, long dec);4124void shiftaddress_canon(GEN x, long dec);4125long timer(void);4126long timer_delay(pari_timer *T);4127long timer_get(pari_timer *T);4128void timer_printf(pari_timer *T, const char *format, ...);4129void timer_start(pari_timer *T);4130long timer2(void);4131GEN trap0(const char *e, GEN f, GEN r);4132void traverseheap( void(*f)(GEN, void *), void *data );4133void walltimer_start(pari_timer *ti);4134long walltimer_delay(pari_timer *ti);4135long walltimer_get(pari_timer *ti);41364137/* intnum.c */41384139GEN contfraceval(GEN CF, GEN t, long nlim);4140GEN contfracinit(GEN M, long lim);4141GEN intcirc(void *E, GEN (*eval) (void *, GEN), GEN a, GEN R, GEN tab, long prec);4142GEN intfuncinit(void *E, GEN (*eval) (void *, GEN), GEN a, GEN b, long m, long prec);4143GEN intnum(void *E, GEN (*eval) (void *, GEN), GEN a, GEN b, GEN tab, long prec);4144GEN intnumgauss(void *E, GEN (*eval)(void*, GEN), GEN a, GEN b, GEN tab, long prec);4145GEN intnumgaussinit(long n, long prec);4146GEN intnuminit(GEN a, GEN b, long m, long prec);4147GEN intnumromb(void *E, GEN (*eval)(void *, GEN), GEN a, GEN b, long flag, long prec);4148GEN intnumromb_bitprec(void *E, GEN (*eval)(void *, GEN), GEN a, GEN b, long flag, long bit);4149GEN prodeulerrat(GEN F, GEN s, long a, long prec);4150GEN prodnumrat(GEN F, long a, long prec);4151GEN quodif(GEN M, long n);4152GEN sumeulerrat(GEN F, GEN s, long a, long prec);4153GEN sumnum(void *E, GEN (*eval)(void*, GEN), GEN a, GEN tab, long prec);4154GEN sumnumap(void *E, GEN (*eval)(void*,GEN), GEN a, GEN tab, long prec);4155GEN sumnumapinit(GEN fast, long prec);4156GEN sumnuminit(GEN fast, long prec);4157GEN sumnumlagrangeinit(GEN al, GEN c1, long prec);4158GEN sumnumlagrange(void *E, GEN (*eval)(void*,GEN,long), GEN a, GEN tab, long prec);4159GEN sumnummonien(void *E, GEN (*eval)(void*, GEN), GEN a, GEN tab, long prec);4160GEN sumnummonieninit(GEN asymp, GEN w, GEN n0, long prec);4161GEN sumnumrat(GEN F, GEN a, long prec);41624163/* krasner.c */41644165GEN padicfields0(GEN p, GEN n, long flag);4166GEN padicfields(GEN p, long m, long d, long flag);41674168/* kummer.c */41694170GEN bnrclassfield(GEN bnr, GEN subgroup, long flag, long prec);4171GEN rnfkummer(GEN bnr, GEN subgroup, long prec);41724173/* lfun.c */41744175long is_linit(GEN data);4176GEN ldata_get_an(GEN ldata);4177GEN ldata_get_dual(GEN ldata);4178GEN ldata_get_gammavec(GEN ldata);4179long ldata_get_degree(GEN ldata);4180GEN ldata_get_k(GEN ldata);4181GEN ldata_get_k1(GEN ldata);4182GEN ldata_get_conductor(GEN ldata);4183GEN ldata_get_rootno(GEN ldata);4184GEN ldata_get_residue(GEN ldata);4185long ldata_get_type(GEN ldata);4186long ldata_isreal(GEN ldata);4187long linit_get_type(GEN linit);4188GEN linit_get_ldata(GEN linit);4189GEN linit_get_tech(GEN linit);4190GEN lfun_get_domain(GEN tech);4191GEN lfun_get_dom(GEN tech);4192long lfun_get_bitprec(GEN tech);4193GEN lfun_get_factgammavec(GEN tech);4194GEN lfun_get_step(GEN tech);4195GEN lfun_get_pol(GEN tech);4196GEN lfun_get_Residue(GEN tech);4197GEN lfun_get_k2(GEN tech);4198GEN lfun_get_w2(GEN tech);4199GEN lfun_get_expot(GEN tech);4200long lfun_get_bitprec(GEN tech);4201GEN lfun(GEN ldata, GEN s, long bitprec);4202GEN lfun0(GEN ldata, GEN s, long der, long bitprec);4203GEN lfunan(GEN ldata, long L, long prec);4204long lfuncheckfeq(GEN data, GEN t0, long bitprec);4205GEN lfunconductor(GEN data, GEN maxcond, long flag, long bitprec);4206GEN lfuncost(GEN lmisc, GEN dom, long der, long bitprec);4207GEN lfuncost0(GEN L, GEN dom, long der, long bitprec);4208GEN lfuncreate(GEN obj);4209GEN lfundual(GEN L, long bitprec);4210GEN lfunparams(GEN ldata, long prec);4211GEN lfunan(GEN ldata, long L, long prec);4212GEN lfunhardy(GEN ldata, GEN t, long bitprec);4213GEN lfuninit(GEN ldata, GEN dom, long der, long bitprec);4214GEN lfuninit0(GEN ldata, GEN dom, long der, long bitprec);4215GEN lfuninit_make(long t, GEN ldata, GEN tech, GEN domain);4216GEN lfunlambda(GEN ldata, GEN s, long bitprec);4217GEN lfunlambda0(GEN ldata, GEN s, long der, long bitprec);4218GEN lfunmisc_to_ldata(GEN ldata);4219GEN lfunmisc_to_ldata_shallow(GEN ldata);4220GEN lfunmisc_to_ldata_shallow_i(GEN ldata);4221long lfunorderzero(GEN ldata, long m, long bitprec);4222GEN lfunprod_get_fact(GEN tech);4223GEN lfunrootno(GEN data, long bitprec);4224GEN lfunrootres(GEN data, long bitprec);4225GEN lfunrtopoles(GEN r);4226GEN lfunshift(GEN ldata, GEN s, long flag, long bitprec);4227GEN lfuntwist(GEN ldata1, GEN ldata2, long bitprec);4228GEN lfuntheta(GEN data, GEN t, long m, long bitprec);4229long lfunthetacost0(GEN L, GEN tdom, long m, long bitprec);4230long lfunthetacost(GEN ldata, GEN tdom, long m, long bitprec);4231GEN lfunthetainit(GEN ldata, GEN tdom, long m, long bitprec);4232GEN lfunthetacheckinit(GEN data, GEN tinf, long m, long bitprec);4233GEN lfunzeros(GEN ldata, GEN lim, long divz, long bitprec);4234int sdomain_isincl(double k, GEN dom, GEN dom0);4235GEN theta_get_an(GEN tdata);4236GEN theta_get_K(GEN tdata);4237GEN theta_get_R(GEN tdata);4238long theta_get_bitprec(GEN tdata);4239long theta_get_m(GEN tdata);4240GEN theta_get_tdom(GEN tdata);4241GEN theta_get_isqrtN(GEN tdata);4242int Vgaeasytheta(GEN Vga);4243GEN znchargauss(GEN G, GEN chi, GEN a, long bitprec);42444245/* lfunutils.c */42464247GEN dirzetak(GEN nf, GEN b);4248GEN ellmoddegree(GEN e);4249GEN eta_ZXn(long v, long L);4250GEN eta_product_ZXn(GEN eta, long L);4251long etaquotype(GEN *eta, GEN *pN, GEN *pk, GEN *CHI, long *pv, long *sd, long *cusp);4252GEN galois_get_conj(GEN G); /* TODO move somewhere else? */4253GEN ldata_vecan(GEN ldata, long L, long prec);4254GEN ldata_newprec(GEN ldata, long prec);4255GEN lfunabelianrelinit(GEN bnfabs, GEN bnf, GEN polrel, GEN dom, long der, long bitprec);4256GEN lfunartin(GEN N, GEN G, GEN M, long o, long bitprec);4257GEN lfundiv(GEN ldata1, GEN ldata2, long bitprec);4258GEN lfunellmfpeters(GEN E, long bitprec);4259GEN lfunetaquo(GEN eta);4260GEN lfungenus2(GEN PS);4261GEN lfunmfspec(GEN lmisc, long bitprec);4262GEN lfunmul(GEN ldata1, GEN ldata2, long bitprec);4263GEN lfunqf(GEN ldata, long prec);4264GEN lfunsympow(GEN E, ulong m);4265GEN lfunzetakinit(GEN pol, GEN dom, long der, long bitprec);4266long qfiseven(GEN M);42674268/* lfunquad */42694270GEN lfunquadneg(long D, long k);42714272/* lll.c */42734274GEN ZM_lll_norms(GEN x, double D, long flag, GEN *B);4275GEN kerint(GEN x);4276GEN lll(GEN x);4277GEN lllfp(GEN x, double D, long flag);4278GEN lllgen(GEN x);4279GEN lllgram(GEN x);4280GEN lllgramgen(GEN x);4281GEN lllgramint(GEN x);4282GEN lllgramkerim(GEN x);4283GEN lllgramkerimgen(GEN x);4284GEN lllint(GEN x);4285GEN lllintpartial(GEN mat);4286GEN lllintpartial_inplace(GEN mat);4287GEN lllkerim(GEN x);4288GEN lllkerimgen(GEN x);4289GEN matkerint0(GEN x,long flag);4290GEN qflll0(GEN x, long flag);4291GEN qflllgram0(GEN x, long flag);42924293/* map.c */42944295GEN gtomap(GEN M);4296void mapdelete(GEN T, GEN a);4297GEN mapdomain(GEN T);4298GEN mapdomain_shallow(GEN T);4299GEN mapget(GEN T, GEN a);4300int mapisdefined(GEN T, GEN a, GEN *pt_z);4301void mapput(GEN T, GEN a, GEN b);4302GEN maptomat(GEN T);4303GEN maptomat_shallow(GEN T);43044305/* matperm.c */4306GEN matpermanent(GEN M);4307GEN zm_permanent(GEN M);4308GEN ZM_permanent(GEN M);43094310/* mellininv.c */43114312double dbllemma526(double a, double b, double c, double B);4313double dblcoro526(double a, double c, double B);4314GEN gammamellininv(GEN Vga, GEN s, long m, long bitprec);4315GEN gammamellininvasymp(GEN Vga, long nlimmax, long m);4316GEN gammamellininvinit(GEN Vga, long m, long bitprec);4317GEN gammamellininvrt(GEN K, GEN s, long bitprec);43184319/* members.c */43204321GEN member_a1(GEN x);4322GEN member_a2(GEN x);4323GEN member_a3(GEN x);4324GEN member_a4(GEN x);4325GEN member_a6(GEN x);4326GEN member_area(GEN x);4327GEN member_b2(GEN x);4328GEN member_b4(GEN x);4329GEN member_b6(GEN x);4330GEN member_b8(GEN x);4331GEN member_bid(GEN x);4332GEN member_bnf(GEN x);4333GEN member_c4(GEN x);4334GEN member_c6(GEN x);4335GEN member_clgp(GEN x);4336GEN member_codiff(GEN x);4337GEN member_cyc(GEN clg);4338GEN member_diff(GEN x);4339GEN member_disc(GEN x);4340GEN member_e(GEN x);4341GEN member_eta(GEN x);4342GEN member_f(GEN x);4343GEN member_fu(GEN x);4344GEN member_gen(GEN x);4345GEN member_group(GEN x);4346GEN member_index(GEN x);4347GEN member_j(GEN x);4348GEN member_mod(GEN x);4349GEN member_nf(GEN x);4350GEN member_no(GEN clg);4351GEN member_omega(GEN x);4352GEN member_orders(GEN x);4353GEN member_p(GEN x);4354GEN member_pol(GEN x);4355GEN member_polabs(GEN x);4356GEN member_reg(GEN x);4357GEN member_r1(GEN x);4358GEN member_r2(GEN x);4359GEN member_roots(GEN x);4360GEN member_sign(GEN x);4361GEN member_t2(GEN x);4362GEN member_tate(GEN x);4363GEN member_tu(GEN x);4364GEN member_zk(GEN x);4365GEN member_zkst(GEN bid);43664367/* mftrace.c */4368enum { mf_NEW = 0, mf_CUSP, mf_OLD, mf_EISEN, mf_FULL };4369enum {4370/*leaves*/4371t_MF_CONST, t_MF_EISEN, t_MF_Ek, t_MF_DELTA, t_MF_ETAQUO, t_MF_ELL,4372t_MF_DIHEDRAL, t_MF_THETA, t_MF_TRACE, t_MF_NEWTRACE,4373/**/4374t_MF_MUL, t_MF_POW, t_MF_DIV, t_MF_BRACKET, t_MF_LINEAR, t_MF_LINEAR_BHN,4375t_MF_SHIFT, t_MF_DERIV, t_MF_DERIVE2, t_MF_TWIST, t_MF_HECKE,4376t_MF_BD,4377};43784379GEN MF_get_CHI(GEN mf);4380GEN MF_get_M(GEN mf);4381GEN MF_get_Mindex(GEN mf);4382GEN MF_get_Minv(GEN mf);4383long MF_get_N(GEN mf);4384GEN MF_get_basis(GEN mf);4385long MF_get_dim(GEN mf);4386GEN MF_get_E(GEN mf);4387GEN MF_get_fields(GEN mf);4388GEN MF_get_gN(GEN mf);4389GEN MF_get_gk(GEN mf);4390long MF_get_k(GEN mf);4391GEN MF_get_newforms(GEN mf);4392long MF_get_r(GEN mf);4393long MF_get_space(GEN mf);4394GEN MF_get_S(GEN mf);4395GEN MFcusp_get_vMjd(GEN mf);4396GEN MFnew_get_vj(GEN mf);4397GEN Qab_tracerel(GEN v, long t, GEN a);4398GEN QabM_tracerel(GEN v, long t, GEN x);4399GEN QabV_tracerel(GEN v, long t, GEN x);4400GEN Qab_trace_init(long n, long m, GEN Pn, GEN Pm);4401GEN checkMF(GEN mf);4402GEN checkMF_i(GEN mf);4403int checkmf_i(GEN mf);4404GEN getcache(void);4405ulong hclassno6u(ulong d);4406ulong hclassno6u_from_cache(ulong D);4407GEN lfunmf(GEN mf, GEN F, long bitprec);4408GEN mfDelta(void);4409GEN mfEH(GEN gk);4410GEN mfEk(long k);4411GEN mfTheta(GEN psi);4412GEN mf_get_CHI(GEN F);4413long mf_get_N(GEN F);4414GEN mf_get_NK(GEN F);4415GEN mf_get_field(GEN F);4416GEN mf_get_gN(GEN F);4417GEN mf_get_gk(GEN F);4418long mf_get_k(GEN F);4419long mf_get_r(GEN F);4420long mf_get_type(GEN F);4421GEN mfatkin(GEN mfa, GEN F);4422GEN mfatkineigenvalues(GEN mf, long Q, long prec);4423GEN mfatkininit(GEN mf, long Q, long prec);4424GEN mfbasis(GEN mf, long space);4425GEN mfbd(GEN F, long d);4426GEN mfbracket(GEN F, GEN G, long m);4427long mfcharorder(GEN CHI);4428long mfcharmodulus(GEN CHI);4429GEN mfcharpol(GEN CHI);4430GEN mfcoef(GEN F, long n);4431GEN mfcoefs(GEN F, long n, long d);4432long mfconductor(GEN mf, GEN F);4433GEN mfcosets(GEN N);4434long mfcuspdim(long N, long k, GEN CHI);4435long mfcuspisregular(GEN NK, GEN cusp);4436GEN mfcusps(GEN gN);4437GEN mfcuspval(GEN mf, GEN F, GEN cusp, long bitprec);4438long mfcuspwidth(GEN gN, GEN cusp);4439GEN mfderiv(GEN F, long m);4440GEN mfderivE2(GEN F, long k);4441GEN mfdescribe(GEN F, GEN *PTU);4442GEN mfdim(GEN NK, long codespace);4443GEN mfdiv(GEN F, GEN G);4444GEN mfdiv_val(GEN F, GEN G, long vG);4445GEN mfeigenbasis(GEN mf);4446GEN mfeigensearch(GEN nklim, GEN vmod);4447GEN mfeisenstein(long k, GEN CHI1, GEN CHI2);4448long mfeisensteindim(long N, long k, GEN CHI);4449GEN mfembed(GEN E, GEN f);4450GEN mfembed0(GEN E, GEN v, long prec);4451GEN mfeval(GEN mf, GEN F, GEN vtau, long bitprec);4452GEN mffields(GEN mf);4453GEN mffromell(GEN E);4454GEN mffrometaquo(GEN eta, long flag);4455GEN mffromlfun(GEN L, long prec);4456GEN mffromqf(GEN Q, GEN P);4457long mffulldim(long N, long k, GEN CHI);4458GEN mfgaloisprojrep(GEN mf, GEN F, long prec);4459GEN mfgaloistype(GEN NK, GEN F);4460GEN mfhecke(GEN mf, GEN F, long n);4461GEN mfheckemat(GEN mf, GEN vecn);4462GEN mfinit(GEN NK, long space);4463GEN mfisCM(GEN F);4464long mfiscuspidal(GEN mf, GEN F);4465long mfisequal(GEN F, GEN G, long lim);4466GEN mfisetaquo(GEN F, long flag);4467GEN mfkohnenbasis(GEN mf);4468GEN mfkohnenbijection(GEN mf);4469GEN mfkohneneigenbasis(GEN mf, GEN bij);4470GEN mflinear(GEN vF, GEN vla);4471GEN mfmanin(GEN F, long bitprec);4472GEN mfmatembed(GEN E, GEN f);4473GEN mfmul(GEN F, GEN G);4474long mfnewdim(long N, long k, GEN CHI);4475long mfolddim(long N, long k, GEN CHI);4476GEN mfparams(GEN F);4477GEN mfperiodpol(GEN mf, GEN F, long flag, long prec);4478GEN mfperiodpolbasis(long k, long flag);4479GEN mfpetersson(GEN FS, GEN GS);4480GEN mfpow(GEN F, long n);4481GEN mfsearch(GEN nklim, GEN V, long space);4482GEN mfshift(GEN F, long sh);4483GEN mfshimura(GEN mf, GEN F, long t);4484GEN mfslashexpansion(GEN mf, GEN F, GEN gamma, long n, long flrat, GEN *param, long prec);4485long mfspace(GEN mf, GEN f);4486GEN mfsplit(GEN mf, long dimlim, long flag);4487long mfsturm(GEN A);4488long mfsturmNgk(long N, GEN k);4489long mfsturmNk(long N, long k);4490long mfsturm_mf(GEN mf);4491GEN mfsymboleval(GEN F, GEN path, GEN ga, long bitprec);4492GEN mfsymbol(GEN mf, GEN F, long bitprec);4493GEN mftaylor(GEN F, long n, long flreal, long prec);4494GEN mftobasis(GEN mf, GEN F, long flag);4495GEN mftobasisES(GEN mf, GEN F);4496GEN mftocol(GEN F, long lim, long d);4497GEN mftocoset(ulong N, GEN M, GEN listcosets);4498GEN mftonew(GEN mf, GEN F);4499GEN mftraceform(GEN NK, long coderat);4500GEN mftwist(GEN F, GEN D);4501GEN mfvecembed(GEN E, GEN v);4502GEN mfvectomat(GEN vF, long lim, long d);45034504/* mp.c */45054506ulong Fl_inv(ulong x, ulong p);4507ulong Fl_invsafe(ulong x, ulong p);4508int Fp_ratlift(GEN x, GEN m, GEN amax, GEN bmax, GEN *a, GEN *b);4509GEN ZM2_mul(GEN A, GEN B);4510int abscmpii(GEN x, GEN y);4511int abscmprr(GEN x, GEN y);4512int absequalii(GEN x, GEN y);4513GEN addii_sign(GEN x, long sx, GEN y, long sy);4514GEN addir_sign(GEN x, long sx, GEN y, long sy);4515GEN addmulii(GEN x, GEN y, GEN z);4516GEN addmulii_inplace(GEN x, GEN y, GEN z);4517GEN addrr_sign(GEN x, long sx, GEN y, long sy);4518GEN addsi_sign(long x, GEN y, long sy);4519GEN addsr(long x, GEN y);4520GEN addui_sign(ulong x, GEN y, long sy);4521GEN addumului(ulong a, ulong b, GEN Y);4522void affir(GEN x, GEN y);4523void affrr(GEN x, GEN y);4524GEN bezout(GEN a, GEN b, GEN *u, GEN *v);4525long cbezout(long a,long b,long *uu,long *vv);4526long cgcd(long a,long b);4527long clcm(long a,long b);4528int cmpii(GEN x, GEN y);4529int cmprr(GEN x, GEN y);4530long dblexpo(double x);4531ulong dblmantissa(double x);4532GEN dbltor(double x);4533GEN diviiexact(GEN x, GEN y);4534GEN divir(GEN x, GEN y);4535GEN divis(GEN y, long x);4536GEN divis_rem(GEN x, long y, long *rem);4537GEN absdiviu_rem(GEN y, ulong x, ulong *rem);4538GEN diviuuexact(GEN x, ulong y, ulong z);4539GEN diviuexact(GEN x, ulong y);4540GEN divri(GEN x, GEN y);4541GEN divrr(GEN x, GEN y);4542GEN divrs(GEN x, long y);4543GEN divru(GEN x, ulong y);4544GEN divsi(long x, GEN y);4545GEN divsr(long x, GEN y);4546GEN divur(ulong x, GEN y);4547GEN dvmdii(GEN x, GEN y, GEN *z);4548int equalii(GEN x, GEN y);4549int equalrr(GEN x, GEN y);4550GEN floorr(GEN x);4551GEN gcdii(GEN x, GEN y);4552GEN halfgcdii(GEN x, GEN y);4553GEN int2n(long n);4554GEN int2u(ulong n);4555GEN int2um1(ulong n);4556GEN int_normalize(GEN x, long known_zero_words);4557int invmod(GEN a, GEN b, GEN *res);4558ulong invmod2BIL(ulong b);4559GEN invr(GEN b);4560GEN mantissa_real(GEN x, long *e);4561GEN modii(GEN x, GEN y);4562void modiiz(GEN x, GEN y, GEN z);4563GEN mulii(GEN x, GEN y);4564GEN mulir(GEN x, GEN y);4565GEN mulrr(GEN x, GEN y);4566GEN mulsi(long x, GEN y);4567GEN mulsr(long x, GEN y);4568GEN mulss(long x, long y);4569GEN mului(ulong x, GEN y);4570GEN mulur(ulong x, GEN y);4571GEN muluu(ulong x, ulong y);4572GEN muluui(ulong x, ulong y, GEN z);4573void pari_kernel_close(void);4574void pari_kernel_init(void);4575const char * pari_kernel_version(void);4576GEN remi2n(GEN x, long n);4577double rtodbl(GEN x);4578GEN shifti(GEN x, long n);4579GEN sqri(GEN x);4580GEN sqrr(GEN x);4581GEN sqrs(long x);4582GEN sqrtr_abs(GEN x);4583GEN sqrtremi(GEN S, GEN *R);4584GEN sqru(ulong x);4585GEN subsr(long x, GEN y);4586GEN truedvmdii(GEN x, GEN y, GEN *z);4587GEN truedvmdis(GEN x, long y, GEN *z);4588GEN truedvmdsi(long x, GEN y, GEN *z);4589GEN trunc2nr(GEN x, long n);4590GEN mantissa2nr(GEN x, long n);4591GEN truncr(GEN x);4592ulong ugcd(ulong a,ulong b);4593ulong ulcm(ulong a, ulong b);4594ulong umodiu(GEN y, ulong x);4595long vals(ulong x);45964597/* nffactor.c */45984599GEN FpC_ratlift(GEN P, GEN mod, GEN amax, GEN bmax, GEN denom);4600GEN FpM_ratlift(GEN M, GEN mod, GEN amax, GEN bmax, GEN denom);4601GEN FpX_ratlift(GEN P, GEN mod, GEN amax, GEN bmax, GEN denom);4602GEN QXQX_gcd(GEN P, GEN Q, GEN T);4603GEN ZXQX_gcd(GEN P, GEN Q, GEN T);4604GEN nffactor(GEN nf,GEN x);4605GEN nffactormod(GEN nf,GEN pol,GEN pr);4606GEN nfgcd(GEN P, GEN Q, GEN nf, GEN den);4607GEN nfgcd_all(GEN P, GEN Q, GEN T, GEN den, GEN *Pnew);4608int nfissquarefree(GEN nf, GEN x);4609GEN nfroots(GEN nf,GEN pol);4610GEN nfroots_if_split(GEN *pnf, GEN pol);4611GEN polfnf(GEN a, GEN t);4612GEN nfrootsof1(GEN x);46134614/* paricfg.c */46154616extern const char *paricfg_datadir;4617extern const char *paricfg_version;4618extern const char *paricfg_buildinfo;4619extern const long paricfg_version_code;4620extern const char *paricfg_vcsversion;4621extern const char *paricfg_compiledate;4622extern const char *paricfg_mt_engine;4623extern const char *paricfg_gphelp;46244625/* part.c */46264627void forpart(void *E, long call(void*,GEN), long k, GEN nbound, GEN abound);4628void forpart_init(forpart_t *T, long k, GEN abound, GEN nbound);4629GEN forpart_next(forpart_t *T);4630GEN forpart_prev(forpart_t *T);4631GEN numbpart(GEN x);4632GEN partitions(long k, GEN nbound, GEN abound);46334634/* forperm.c */46354636void forperm(void *E, long call(void *, GEN), GEN k);4637void forperm_init(forperm_t *T, GEN k);4638GEN forperm_next(forperm_t *T);46394640/* forsubset.c */46414642void forallsubset_init(forsubset_t *T, long n);4643void forksubset_init(forsubset_t *T, long n, long k);4644GEN forsubset_next(forsubset_t *T);4645void forsubset_init(forsubset_t *T, GEN nk);46464647/* lambert.c */46484649GEN glambertW(GEN y, long branch, long prec);4650GEN mplambertW(GEN y, long prec);4651GEN mplambertX(GEN y, long bit);4652GEN mplambertx_logx(GEN a, GEN b, long bit);4653GEN mplambertxlogx_x(GEN a, GEN b, long bit);46544655/* perm.c */46564657GEN Z_to_perm(long n, GEN x);4658GEN abelian_group(GEN G);4659GEN conjclasses_repr(GEN conj, long nb);4660GEN cyc_pow(GEN cyc, long exp);4661GEN cyc_pow_perm(GEN cyc, long exp);4662GEN cyclicgroup(GEN g, long s);4663GEN dicyclicgroup(GEN g1, GEN g2, long s1, long s2);4664GEN group_abelianHNF(GEN G, GEN L);4665GEN group_abelianSNF(GEN G, GEN L);4666long group_domain(GEN G);4667GEN group_elts(GEN G, long n);4668GEN group_export(GEN G, long format);4669GEN group_export_GAP(GEN G);4670GEN group_export_MAGMA(GEN G);4671long group_isA4S4(GEN G);4672long group_isabelian(GEN G);4673GEN group_leftcoset(GEN G, GEN g);4674long group_order(GEN G);4675long group_perm_normalize(GEN N, GEN g);4676GEN group_quotient(GEN G, GEN H);4677GEN group_rightcoset(GEN G, GEN g);4678GEN group_set(GEN G, long n);4679int group_subgroup_is_faithful(GEN G, GEN H);4680long group_subgroup_isnormal(GEN G, GEN H);4681GEN group_subgroups(GEN G);4682GEN group_to_cc(GEN G);4683GEN groupelts_abelian_group(GEN S);4684GEN groupelts_center(GEN S);4685GEN groupelts_conj_set(GEN elts, GEN p);4686GEN groupelts_conjclasses(GEN elts, long *nbcl);4687long groupelts_exponent(GEN G);4688GEN groupelts_quotient(GEN G, GEN H);4689GEN groupelts_set(GEN G, long n);4690GEN groupelts_to_group(GEN G);4691GEN numtoperm(long n, GEN x);4692int perm_commute(GEN p, GEN q);4693GEN perm_cycles(GEN v);4694GEN perm_order(GEN perm);4695ulong perm_orderu(GEN perm);4696GEN perm_pow(GEN perm, GEN exp);4697GEN perm_powu(GEN perm, ulong exp);4698long perm_sign(GEN perm);4699GEN perm_to_GAP(GEN v);4700GEN perm_to_Z(GEN v);4701GEN permcycles(GEN perm);4702GEN permorder(GEN perm);4703long permsign(GEN perm);4704GEN permtonum(GEN x);4705GEN quotient_group(GEN C, GEN G);4706GEN quotient_groupelts(GEN C);4707GEN quotient_perm(GEN C, GEN p);4708GEN quotient_subgroup_lift(GEN C, GEN H, GEN S);4709GEN subgroups_tableset(GEN S, long n);4710long tableset_find_index(GEN tbl, GEN set);4711GEN trivialgroup(void);4712GEN vec_insert(GEN v, long n, GEN x);4713int vec_is1to1(GEN v);4714int vec_isconst(GEN v);4715GEN vecperm_orbits(GEN v, long n);4716long vecsmall_duplicate(GEN x);4717long vecsmall_duplicate_sorted(GEN x);4718GEN vecsmall_indexsort(GEN V);4719int vecsmall_is1to1(GEN v);4720int vecsmall_isconst(GEN v);4721void vecsmall_sort(GEN V);4722GEN vecsmall_uniq(GEN V);4723GEN vecsmall_uniq_sorted(GEN V);4724GEN vecvecsmall_indexsort(GEN x);4725long vecvecsmall_max(GEN x);4726long vecvecsmall_search(GEN x, GEN y);4727GEN vecvecsmall_sort(GEN x);4728void vecvecsmall_sort_inplace(GEN x, GEN *perm);4729GEN vecvecsmall_sort_shallow(GEN x);4730GEN vecvecsmall_sort_uniq(GEN x);47314732/* mt.c */47334734void mt_broadcast(GEN code);4735long mt_nbthreads(void);4736void mt_queue_end(struct pari_mt *pt);4737GEN mt_queue_get(struct pari_mt *pt, long *jobid, long *pending);4738void mt_queue_start(struct pari_mt *pt, GEN worker);4739void mt_queue_start_lim(struct pari_mt *pt, GEN worker, long lim);4740void mt_queue_submit(struct pari_mt *pt, long jobid, GEN work);4741void mt_sigint_block(void);4742void mt_sigint_unblock(void);4743void pari_mt_init(void);4744void pari_mt_close(void);47454746/* plotport.c */47474748void color_to_rgb(GEN c, int *r, int *g, int *b);4749void colorname_to_rgb(const char *s, int *r, int *g, int *b);4750void long_to_rgb(long c, int *r, int *g, int *b);4751void pari_plot_by_file(const char *env, const char *suf, const char *img);4752void pari_set_plot_engine(void (*plot)(PARI_plot *));4753void pari_kill_plot_engine(void);4754GEN parploth(GEN a, GEN b, GEN code, long flags,long n, long prec);4755GEN parplothexport(GEN fmt, GEN a, GEN b, GEN code, long flags, long n, long prec);4756void plotbox(long ne, GEN gx2, GEN gy2, long fl);4757void plotclip(long rect);4758GEN plotcolor(long ne, GEN c);4759void plotcopy(long source, long dest, GEN xoff, GEN yoff, long flag);4760GEN plotcursor(long ne);4761void plotdraw(GEN list, long flag);4762GEN plotexport(GEN fmt, GEN wxy, long flag);4763GEN ploth(void *E, GEN(*f)(void*,GEN), GEN a, GEN b, long flags,long n, long prec);4764GEN plothexport(GEN fmt, void *E, GEN(*f)(void*,GEN), GEN a,GEN b, long flags, long n, long prec);4765GEN plothraw(GEN listx, GEN listy, long flag);4766GEN plothrawexport(GEN fmt, GEN X, GEN Y, long flags);4767GEN plothsizes(long flag);4768void plotinit(long ne, GEN x, GEN y, long flag);4769void plotkill(long ne);4770void plotline(long ne, GEN gx2, GEN gy2);4771void plotlines(long ne, GEN listx, GEN listy, long flag);4772void plotlinetype(long ne, long t);4773void plotmove(long ne, GEN x, GEN y);4774void plotpoints(long ne, GEN listx, GEN listy);4775void plotpointsize(long ne, GEN size);4776void plotpointtype(long ne, long t);4777void plotrbox(long ne, GEN x2, GEN y2, long fl);4778GEN plotrecth(void *E, GEN(*f)(void*,GEN), long ne, GEN a,GEN b, ulong flags,long n, long prec);4779GEN plotrecthraw(long ne, GEN data, long flags);4780void plotrline(long ne, GEN x2, GEN y2);4781void plotrmove(long ne, GEN x, GEN y);4782void plotrpoint(long ne, GEN x, GEN y);4783void plotscale(long ne, GEN x1, GEN x2, GEN y1, GEN y2);4784void plotstring(long ne, char *x, long dir);4785void psdraw(GEN list, long flag);4786GEN psploth(void *E, GEN(*f)(void*,GEN), GEN a, GEN b, long flags, long n, long prec);4787GEN psplothraw(GEN listx, GEN listy, long flag);4788char* rect2ps(GEN w, GEN x, GEN y, PARI_plot *T);4789char* rect2ps_i(GEN w, GEN x, GEN y, PARI_plot *T, int plotps);4790char* rect2svg(GEN w, GEN x, GEN y, PARI_plot *T);47914792/* plottty.c */47934794void pariplot(void* E, GEN (*fun)(void *E, GEN x), GEN a, GEN b, GEN ysmlu,GEN ybigu, long prec);47954796/* polarit1.c */47974798GEN ZX_Zp_root(GEN f, GEN a, GEN p, long prec);4799GEN Zp_appr(GEN f, GEN a);4800int cmp_padic(GEN x, GEN y);4801GEN factorpadic(GEN x, GEN p, long r);4802GEN gdeuc(GEN x, GEN y);4803GEN grem(GEN x, GEN y);4804GEN padicappr(GEN f, GEN a);4805GEN poldivrem(GEN x, GEN y, GEN *pr);4806GEN polrootspadic(GEN f, GEN p, long r);48074808/* polarit2.c */48094810ulong Flv_factorback(GEN L, GEN e, ulong p);4811GEN FlxqV_factorback(GEN L, GEN e, GEN Tp, ulong p);4812GEN FpV_factorback(GEN L, GEN e, GEN p);4813GEN FqV_factorback(GEN L, GEN e, GEN Tp, GEN p);4814GEN Q_content(GEN x);4815GEN Q_content_safe(GEN x);4816GEN Q_denom(GEN x);4817GEN Q_denom_safe(GEN x);4818GEN Q_div_to_int(GEN x, GEN c);4819GEN Q_gcd(GEN x, GEN y);4820GEN Q_mul_to_int(GEN x, GEN c);4821GEN Q_muli_to_int(GEN x, GEN d);4822GEN Q_primitive_part(GEN x, GEN *ptc);4823GEN Q_primpart(GEN x);4824GEN Q_remove_denom(GEN x, GEN *ptd);4825GEN Q_factor(GEN x);4826GEN Q_factor_limit(GEN x, ulong lim);4827long Rg_type(GEN x, GEN *ptp, GEN *ptpol, long *ptpa);4828long RgM_RgC_type(GEN x, GEN y, GEN *p, GEN *pol, long *pa);4829GEN RgM_rescale_to_int(GEN x);4830long RgM_type(GEN x, GEN *p, GEN *pol, long *pa);4831long RgM_type2(GEN x, GEN y, GEN *p, GEN *pol, long *pa);4832long RgV_type(GEN x, GEN *p, GEN *pol, long *pa);4833long RgV_type2(GEN x, GEN y, GEN *p, GEN *pol, long *pa);4834long RgX_Rg_type(GEN x, GEN y, GEN *p, GEN *pol, long *pa);4835GEN RgX_chinese_coprime(GEN x, GEN y, GEN Tx, GEN Ty, GEN Tz);4836GEN RgX_disc(GEN x);4837GEN RgX_extgcd(GEN x, GEN y, GEN *U, GEN *V);4838GEN RgX_extgcd_simple(GEN a, GEN b, GEN *pu, GEN *pv);4839GEN RgX_gcd(GEN x, GEN y);4840GEN RgX_gcd_simple(GEN x, GEN y);4841GEN RgX_halfgcd(GEN x, GEN y);4842GEN RgX_rescale_to_int(GEN x);4843GEN RgX_resultant_all(GEN P, GEN Q, GEN *sol);4844long RgX_sturmpart(GEN x, GEN ab);4845GEN RgX_sylvestermatrix(GEN x, GEN y);4846long RgX_type(GEN x, GEN *ptp, GEN *ptpol, long *ptpa);4847long RgX_type2(GEN x, GEN y, GEN *ptp, GEN *ptpol, long *ptpa);4848long RgX_type3(GEN x, GEN y, GEN z, GEN *ptp, GEN *ptpol, long *ptpa);4849void RgX_type_decode(long x, long *t1, long *t2);4850int RgX_type_is_composite(long t);4851GEN RgXQ_charpoly(GEN x, GEN T, long v);4852GEN RgXQ_inv(GEN x, GEN y);4853GEN RgXQ_mul(GEN x, GEN y, GEN T);4854int RgXQ_ratlift(GEN y, GEN x, long amax, long bmax, GEN *P, GEN *Q);4855GEN RgXQ_sqr(GEN x, GEN y);4856GEN Z_content(GEN x);4857GEN ZX_content(GEN x);4858GEN centermod(GEN x, GEN p);4859GEN centermod_i(GEN x, GEN p, GEN ps2);4860GEN centermodii(GEN x, GEN p, GEN po2);4861GEN content(GEN x);4862GEN content0(GEN x, GEN D);4863GEN deg1_from_roots(GEN L, long v);4864GEN factor(GEN x);4865GEN factor0(GEN x, GEN flag);4866GEN factorback(GEN fa);4867GEN factorback2(GEN fa,GEN e);4868GEN gbezout(GEN x, GEN y, GEN *u, GEN *v);4869GEN gdivexact(GEN x, GEN y);4870GEN gen_factorback(GEN L, GEN e, void *E, GEN (*_mul)(void*,GEN,GEN),4871GEN (*_pow)(void*,GEN,GEN),4872GEN (*_one)(void*));4873GEN ggcd(GEN x, GEN y);4874GEN ggcd0(GEN x, GEN y);4875GEN ghalfgcd(GEN x, GEN y);4876GEN ginvmod(GEN x, GEN y);4877GEN glcm(GEN x, GEN y);4878GEN glcm0(GEN x, GEN y);4879GEN idealfactorback(GEN nf, GEN L, GEN e, int red);4880GEN newtonpoly(GEN x, GEN p);4881GEN nffactorback(GEN nf, GEN L, GEN e);4882GEN nfrootsQ(GEN x);4883GEN poldisc0(GEN x, long v);4884long polisirreducible(GEN x);4885GEN polresultant0(GEN x, GEN y,long v,long flag);4886GEN polsym(GEN x, long n);4887GEN primitive_part(GEN x, GEN *c);4888GEN primpart(GEN x);4889GEN reduceddiscsmith(GEN pol);4890GEN resultant2(GEN x, GEN y);4891GEN resultant(GEN u, GEN v);4892GEN rnfcharpoly(GEN nf, GEN T, GEN alpha, long v);4893GEN roots_from_deg1(GEN x);4894GEN roots_to_pol(GEN a, long v);4895GEN roots_to_pol_r1(GEN a, long v, long r1);4896long sturmpart(GEN x, GEN a, GEN b);4897GEN subresext(GEN x, GEN y, GEN *U, GEN *V);4898GEN sylvestermatrix(GEN x,GEN y);4899GEN trivial_fact(void);4900GEN gcdext0(GEN x, GEN y);4901GEN polresultantext0(GEN x, GEN y, long v);4902GEN polresultantext(GEN x, GEN y);4903GEN prime_fact(GEN x);4904GEN row_Q_primpart(GEN M);4905GEN vec_Q_primpart(GEN M);4906GEN vecprod(GEN v);4907GEN ZV_lcm(GEN x);49084909/* polarit3.c */49104911GEN Flx_FlxY_resultant(GEN a, GEN b, ulong p);4912GEN FlxX_resultant(GEN u, GEN v, ulong p, long sx);4913GEN FpX_FpXY_resultant(GEN a, GEN b0, GEN p);4914GEN FpX_translate(GEN P, GEN c, GEN p);4915GEN FpXQX_normalize(GEN z, GEN T, GEN p);4916GEN FpXV_FpC_mul(GEN V, GEN W, GEN p);4917GEN FpXY_FpXQ_evaly(GEN Q, GEN y, GEN T, GEN p, long vx);4918GEN FpXC_center(GEN C, GEN p, GEN pov2);4919GEN FpXM_center(GEN M, GEN p, GEN pov2);4920GEN Fq_Fp_mul(GEN x, GEN y, GEN T, GEN p);4921GEN Fq_add(GEN x, GEN y, GEN T/*unused*/, GEN p);4922GEN Fq_div(GEN x, GEN y, GEN T, GEN p);4923GEN Fq_halve(GEN x, GEN T/*unused*/, GEN p);4924GEN Fq_inv(GEN x, GEN T, GEN p);4925GEN Fq_invsafe(GEN x, GEN T, GEN p);4926GEN Fq_mul(GEN x, GEN y, GEN T, GEN p);4927GEN Fq_mulu(GEN x, ulong y, /*unused*/GEN T, GEN p);4928GEN Fq_neg(GEN x, GEN T, GEN p);4929GEN Fq_neg_inv(GEN x, GEN T, GEN p);4930GEN Fq_pow(GEN x, GEN n, GEN T, GEN p);4931GEN Fq_powu(GEN x, ulong n, GEN pol, GEN p);4932GEN Fq_sqr(GEN x, GEN T, GEN p);4933GEN Fq_sqrt(GEN x, GEN T, GEN p);4934GEN Fq_sqrtn(GEN x, GEN n, GEN T, GEN p, GEN *zeta);4935GEN Fq_sub(GEN x, GEN y, GEN T/*unused*/, GEN p);4936GEN FqC_Fq_mul(GEN x, GEN y, GEN T, GEN p);4937GEN FqC_FqV_mul(GEN x, GEN y, GEN T, GEN p);4938GEN FqC_add(GEN x, GEN y, GEN T, GEN p);4939GEN FqC_sub(GEN x, GEN y, GEN T, GEN p);4940GEN FqV_red(GEN z, GEN T, GEN p);4941GEN FqV_roots_to_pol(GEN V, GEN T, GEN p, long v);4942GEN FqX_Fq_add(GEN y, GEN x, GEN T, GEN p);4943GEN FqX_Fq_mul_to_monic(GEN P, GEN U, GEN T, GEN p);4944GEN FqX_Fq_sub(GEN y, GEN x, GEN T, GEN p);4945GEN FqX_eval(GEN x, GEN y, GEN T, GEN p);4946GEN FqX_translate(GEN P, GEN c, GEN T, GEN p);4947GEN FqXQ_matrix_pow(GEN y, long n, long m, GEN S, GEN T, GEN p);4948GEN FqXQ_powers(GEN x, long l, GEN S, GEN T, GEN p);4949GEN FqXY_eval(GEN Q, GEN y, GEN x, GEN T, GEN p);4950GEN FqXY_evalx(GEN Q, GEN x, GEN T, GEN p);4951GEN QX_disc(GEN x);4952GEN QX_gcd(GEN a,GEN b);4953GEN QX_resultant(GEN A, GEN B);4954GEN QXQ_div(GEN A, GEN B, GEN C);4955GEN QXQ_intnorm(GEN A, GEN B);4956GEN QXQ_inv(GEN A, GEN B);4957GEN QXQ_mul(GEN A, GEN B, GEN T);4958GEN QXQ_norm(GEN A, GEN B);4959GEN QXQ_sqr(GEN A, GEN B);4960int Rg_is_Fp(GEN x, GEN *p);4961int Rg_is_FpXQ(GEN x, GEN *pT, GEN *pp);4962GEN Rg_to_Fp(GEN x, GEN p);4963GEN Rg_to_FpXQ(GEN x, GEN T, GEN p);4964GEN RgC_to_FpC(GEN x, GEN p);4965GEN RgC_to_FqC(GEN x, GEN T, GEN p);4966int RgM_is_FpM(GEN x, GEN *p);4967GEN RgM_to_Flm(GEN x, ulong p);4968GEN RgM_to_FpM(GEN x, GEN p);4969GEN RgM_to_FqM(GEN x, GEN T, GEN p);4970int RgV_is_FpV(GEN x, GEN *p);4971GEN RgV_to_Flv(GEN x, ulong p);4972GEN RgV_to_FpV(GEN x, GEN p);4973int RgX_is_FpX(GEN x, GEN *p);4974GEN RgX_to_FpX(GEN x, GEN p);4975int RgX_is_FpXQX(GEN x, GEN *pT, GEN *pp);4976GEN RgX_to_FpXQX(GEN x, GEN T, GEN p);4977GEN RgX_to_FqX(GEN x, GEN T, GEN p);4978int Z_incremental_CRT(GEN *H, ulong Hp, GEN *q, ulong p);4979GEN Z_init_CRT(ulong Hp, ulong p);4980int ZM_incremental_CRT(GEN *H, GEN Hp, GEN *q, ulong p);4981GEN ZM_init_CRT(GEN Hp, ulong p);4982GEN ZX_ZXY_resultant(GEN a, GEN b);4983GEN ZX_ZXY_rnfequation(GEN A, GEN B, long *lambda);4984GEN ZX_disc(GEN x);4985GEN ZX_gcd(GEN A, GEN B);4986GEN ZX_gcd_all(GEN A, GEN B, GEN *Anew);4987int ZX_incremental_CRT(GEN *ptH, GEN Hp, GEN *q, ulong p);4988GEN ZX_init_CRT(GEN Hp, ulong p, long v);4989int ZX_is_squarefree(GEN x);4990GEN ZX_radical(GEN A);4991GEN ZX_resultant(GEN A, GEN B);4992int ZXM_incremental_CRT(GEN *pH, GEN Hp, GEN *ptq, ulong p);4993GEN ZXM_init_CRT(GEN Hp, long deg, ulong p);4994GEN ZXQ_minpoly(GEN A, GEN T, long d, ulong b);4995GEN ZXQ_charpoly(GEN A, GEN T, long v);4996GEN characteristic(GEN x);4997GEN ffinit(GEN p, long n, long v);4998GEN ffnbirred(GEN p, long n);4999GEN ffnbirred0(GEN p, long n, long flag);5000GEN ffsumnbirred(GEN p, long n);5001const struct bb_field *get_Fq_field(void **E, GEN T, GEN p);5002GEN init_Flxq(ulong p, long n, long v);5003GEN init_Fq(GEN p, long n, long v);5004GEN nfX_disc(GEN nf, GEN x);5005GEN nfX_resultant(GEN nf, GEN x, GEN y);5006GEN pol_x_powers(long N, long v);5007GEN residual_characteristic(GEN x);50085009/* polclass.c */50105011GEN polclass(GEN D, long inv, long xvar);50125013/* polmodular.c */50145015GEN Fp_modinv_to_j(GEN x, long inv, GEN p);5016GEN Fp_polmodular_evalx(long L, long inv, GEN J, GEN P, long v, int compute_derivs);5017void check_modinv(long inv);5018long disc_best_modinv(long D);5019long modinv_height_factor(long inv);5020int modinv_good_disc(long inv, long D);5021int modinv_good_prime(long inv, long p);5022int modinv_is_Weber(long inv);5023int modinv_is_double_eta(long inv);5024GEN polmodular(long L, long inv, GEN x, long yvar, long compute_derivs);5025GEN polmodular_ZM(long L, long inv);5026GEN polmodular_ZXX(long L, long inv, long xvar, long yvar);50275028/* prime.c */50295030long BPSW_isprime(GEN x);5031long BPSW_psp(GEN N);5032GEN addprimes(GEN primes);5033long check_ecppcert(GEN c);5034GEN gisprime(GEN x, long flag);5035GEN gispseudoprime(GEN x, long flag);5036GEN gprimepi_upper_bound(GEN x);5037GEN gprimepi_lower_bound(GEN x);5038long isprime(GEN x);5039long ispseudoprime(GEN x, long flag);5040long millerrabin(GEN n, long k);5041GEN prime(long n);5042GEN primecert(GEN x, long flag);5043GEN primecert0(GEN x, long flag, long stopat);5044GEN primecertexport(GEN cert, long flag);5045long primecertisvalid(GEN x);5046GEN primepi(GEN x);5047double primepi_upper_bound(double x);5048double primepi_lower_bound(double x);5049GEN primes(long n);5050GEN primes_interval(GEN a, GEN b);5051GEN primes_interval_zv(ulong a, ulong b);5052GEN primes_upto_zv(ulong b);5053GEN primes0(GEN n);5054GEN primes_zv(long m);5055GEN randomprime(GEN N);5056GEN randomprime0(GEN N, GEN q);5057GEN removeprimes(GEN primes);5058int uis2psp(ulong n);5059int uispsp(ulong a, ulong n);5060int uislucaspsp(ulong n);5061int uisprime(ulong n);5062int uisprime_101(ulong n);5063int uisprime_661(ulong n);5064ulong uprime(long n);5065ulong uprimepi(ulong n);50665067/* qfisom.c */50685069GEN qfauto(GEN g, GEN flags);5070GEN qfauto0(GEN g, GEN flags);5071GEN qfautoexport(GEN g, long flag);5072GEN qfisom(GEN g, GEN h, GEN flags, GEN G);5073GEN qfisom0(GEN g, GEN h, GEN flags, GEN G);5074GEN qfisominit(GEN g, GEN flags, GEN minvec);5075GEN qfisominit0(GEN g, GEN flags, GEN minvec);5076GEN qforbits(GEN G, GEN V);50775078/* qfparam.c */50795080GEN qfsolve(GEN G);5081GEN qfparam(GEN G, GEN sol, long fl);50825083/* random.c */50845085GEN genrand(GEN N);5086GEN getrand(void);5087ulong pari_rand(void);5088GEN randomi(GEN x);5089GEN randomr(long prec);5090GEN random_F2x(long d, long vs);5091ulong random_Fl(ulong n);5092long random_bits(long k);5093GEN random_zv(long n);5094void setrand(GEN seed);50955096/* ratpoints.c */50975098GEN ellratpoints(GEN E, GEN h, long flag);5099GEN hyperellratpoints(GEN P, GEN h, long flag);51005101/* rootpol.c */51025103GEN QX_complex_roots(GEN p, long l);5104GEN FFT(GEN W, GEN x);5105GEN FFTinv(GEN W, GEN x);5106GEN cleanroots(GEN x,long l);5107double fujiwara_bound(GEN p);5108double fujiwara_bound_real(GEN p, long sign);5109int isrealappr(GEN x, long l);5110GEN polgraeffe(GEN p);5111GEN polmod_to_embed(GEN x, long prec);5112GEN polrootsbound(GEN p, GEN tau);5113GEN roots(GEN x,long l);5114GEN realroots(GEN P, GEN ab, long prec);5115GEN ZX_graeffe(GEN p);5116GEN ZX_realroots_irred(GEN P, long prec);5117long ZX_sturm(GEN P);5118long ZX_sturm_irred(GEN P);5119long ZX_sturmpart(GEN P, GEN ab);5120GEN ZX_Uspensky(GEN P, GEN ab, long flag, long prec);51215122/* subcyclo.c */51235124GEN factor_Aurifeuille(GEN p, long n);5125GEN factor_Aurifeuille_prime(GEN p, long n);5126GEN galoissubcyclo(GEN N, GEN sg, long flag, long v);5127GEN polsubcyclo(long n, long d, long v);5128GEN polsubcyclo0(GEN n, long d, long v);5129GEN polsubcyclosmall(GEN n, long ell, long s, long fli);51305131/* subfield.c */51325133GEN nfsubfields(GEN nf, long d);5134GEN nfsubfields0(GEN nf, long d, long flag);5135GEN nfsubfieldscm(GEN nf, long flag);5136GEN nfsubfieldsmax(GEN nf, long flag);51375138/* nflist.c */5139GEN nflist(GEN GP, GEN V, long s, GEN field);5140GEN nfresolvent(GEN pol, long flag);51415142/* subgroup.c */51435144GEN subgrouplist(GEN cyc, GEN bound);5145void forsubgroup(void *E, long fun(void*,GEN), GEN cyc, GEN B);51465147/* stark.c */51485149GEN ag_kernel(GEN S);5150GEN ag_subgroup_image(GEN S, GEN H);5151GEN bnrL1(GEN bnr, GEN sbgrp, long flag, long prec);5152GEN bnrrootnumber(GEN bnr, GEN chi, long flag, long prec);5153GEN bnrstark(GEN bnr, GEN subgroup, long prec);5154GEN cyc2elts(GEN cyc);5155GEN qfbforms(GEN D);51565157/* str.c */51585159GEN chartoGENstr(char c);5160char* pari_strdup(const char *s);5161char* pari_strndup(const char *s, long n);5162char* stack_strcat(const char *s, const char *t);5163char* stack_strdup(const char *s);5164GEN pari_strchr(GEN g);5165GEN strjoin(GEN v, GEN p);5166GEN strntoGENstr(const char *s, long n0);5167GEN strsplit(GEN x, GEN p);5168GEN strtoGENstr(const char *s);5169const char* type_name(long t);5170GEN type0(GEN x);51715172/* sumiter.c */51735174GEN asympnum(void *E, GEN (*f)(void *,GEN,long), GEN alpha, long prec);5175GEN asympnumraw(void *E, GEN (*f)(void *,GEN,long), long LIM, GEN alpha, long prec);5176GEN derivnum(void *E, GEN (*eval)(void *, GEN, long prec), GEN x, long prec);5177GEN derivnumk(void *E, GEN (*eval)(void *, GEN, long), GEN x, GEN ind0, long prec);5178GEN derivfun(void *E, GEN (*eval)(void *, GEN, long prec), GEN x, long prec);5179GEN derivfunk(void *E, GEN (*eval)(void *, GEN, long), GEN x, GEN ind0, long prec);5180int forvec_init(forvec_t *T, GEN x, long flag);5181GEN forvec_next(forvec_t *T);5182GEN laurentseries(void *E, GEN (*f)(void*,GEN x, long), long M, long v, long prec);5183GEN limitnum(void *E, GEN (*f)(void *,GEN,long), GEN alpha, long prec);5184GEN polzag(long n, long m);5185GEN prodeuler(void *E, GEN (*eval)(void *, GEN), GEN ga, GEN gb, long prec);5186GEN prodinf(void *E, GEN (*eval)(void *, GEN), GEN a, long prec);5187GEN prodinf1(void *E, GEN (*eval)(void *, GEN), GEN a, long prec);5188GEN solvestep(void *E, GEN (*eval)(void *, GEN), GEN a, GEN b, GEN step, long flag, long prec);5189GEN sumalt(void *E, GEN (*eval)(void *, GEN), GEN a, long prec);5190GEN sumalt2(void *E, GEN (*eval)(void *, GEN), GEN a, long prec);5191GEN sumpos(void *E, GEN (*eval)(void *, GEN), GEN a, long prec);5192GEN sumpos2(void *E, GEN (*eval)(void *, GEN), GEN a, long prec);5193GEN suminf(void *E, GEN (*eval)(void *, GEN), GEN a, long prec);5194GEN suminf_bitprec(void *E, GEN (*eval)(void *, GEN), GEN a, long prec);5195GEN sumdivmultexpr(void *D, GEN (*fun)(void*, GEN), GEN num);5196GEN zbrent(void *E, GEN (*eval)(void *, GEN), GEN a, GEN b, long prec);51975198/* thue.c */51995200GEN bnfisintnorm(GEN x, GEN y);5201GEN bnfisintnormabs(GEN bnf, GEN a);5202GEN ideals_by_norm(GEN nf, GEN a);5203GEN thue(GEN thueres, GEN rhs, GEN ne);5204GEN thueinit(GEN pol, long flag, long prec);52055206/* trans1.c */52075208GEN Pi2n(long n, long prec);5209GEN PiI2(long prec);5210GEN PiI2n(long n, long prec);5211GEN Qp_exp(GEN x);5212long Qp_exp_prec(GEN x);5213GEN Qp_log(GEN x);5214GEN Qp_sqrt(GEN x);5215GEN Qp_sqrtn(GEN x, GEN n, GEN *zetan);5216long Zn_ispower(GEN a, GEN q, GEN K, GEN *pt);5217long Zn_issquare(GEN x, GEN n);5218GEN Zn_sqrt(GEN x, GEN n);5219GEN Zp_teichmuller(GEN x, GEN p, long n, GEN q);5220GEN agm(GEN x, GEN y, long prec);5221GEN constcatalan(long prec);5222GEN consteuler(long prec);5223GEN constlog2(long prec);5224GEN constpi(long prec);5225GEN cxexpm1(GEN z, long prec);5226GEN ellE(GEN k, long prec);5227GEN ellK(GEN k, long prec);5228GEN expIr(GEN x);5229GEN exp1r_abs(GEN x);5230GEN gcos(GEN x, long prec);5231GEN gcotan(GEN x, long prec);5232GEN gcotanh(GEN x, long prec);5233GEN gexp(GEN x, long prec);5234GEN gexpm1(GEN x, long prec);5235GEN glog(GEN x, long prec);5236GEN glog1p(GEN x, long prec);5237GEN gpow(GEN x, GEN n, long prec);5238GEN gpowers(GEN x, long n);5239GEN gpowers0(GEN x, long n, GEN x0);5240GEN gpowgs(GEN x, long n);5241GEN grootsof1(long N, long prec);5242GEN gsin(GEN x, long prec);5243GEN gsinc(GEN x, long prec);5244void gsincos(GEN x, GEN *s, GEN *c, long prec);5245GEN gsqrpowers(GEN q, long n);5246GEN gsqrt(GEN x, long prec);5247GEN gsqrtn(GEN x, GEN n, GEN *zetan, long prec);5248GEN gtan(GEN x, long prec);5249GEN logr_abs(GEN x);5250GEN mpcos(GEN x);5251GEN mpeuler(long prec);5252GEN mpcatalan(long prec);5253void mpsincosm1(GEN x, GEN *s, GEN *c);5254GEN mpexp(GEN x);5255GEN mpexpm1(GEN x);5256GEN mplog(GEN x);5257GEN mplog2(long prec);5258GEN mppi(long prec);5259GEN mpsin(GEN x);5260void mpsincos(GEN x, GEN *s, GEN *c);5261GEN pow2Pis(GEN s, long prec);5262GEN powPis(GEN s, long prec);5263GEN powcx(GEN x, GEN logx, GEN n, long prec);5264long powcx_prec(long ex, GEN n, long prec);5265GEN powersr(GEN a, long n);5266GEN powis(GEN x, long n);5267GEN powiu(GEN p, ulong k);5268GEN powrfrac(GEN x, long n, long d);5269GEN powrs(GEN x, long n);5270GEN powrshalf(GEN x, long s);5271GEN powru(GEN x, ulong n);5272GEN powruhalf(GEN x, ulong s);5273GEN powuu(ulong p, ulong k);5274GEN powgi(GEN x, GEN n);5275GEN rootsof1_cx(GEN d, long prec);5276GEN rootsof1u_cx(ulong d, long prec);5277GEN rootsof1q_cx(long a, long b, long prec);5278GEN rootsof1powinit(long a, long b, long prec);5279GEN rootsof1pow(GEN T, long c);5280GEN serchop(GEN s, long n);5281GEN serchop_i(GEN s, long n);5282GEN serchop0(GEN s);5283GEN sqrtnint(GEN a, long n);5284GEN sqrtnr_abs(GEN x, long n);5285GEN teich(GEN x);5286GEN teichmullerinit(long p, long n);5287GEN teichmuller(GEN x, GEN tab);5288GEN trans_eval(const char *fun, GEN (*f) (GEN, long), GEN x, long prec);5289GEN trans_evalgen(const char *fun, void *E, GEN (*f) (void*,GEN,long), GEN x, long prec);5290ulong upowuu(ulong p, ulong k);5291GEN upowers(ulong x, long n);5292ulong usqrtn(ulong a, ulong n);5293ulong usqrt(ulong a);52945295/* trans2.c */52965297GEN Qp_gamma(GEN x);5298GEN atanhuu(ulong u, ulong v, long prec);5299GEN atanhui(ulong u, GEN v, long prec);5300GEN gacosh(GEN x, long prec);5301GEN gacos(GEN x, long prec);5302GEN garg(GEN x, long prec);5303GEN gasinh(GEN x, long prec);5304GEN gasin(GEN x, long prec);5305GEN gatan(GEN x, long prec);5306GEN gatanh(GEN x, long prec);5307GEN gcosh(GEN x, long prec);5308GEN ggammah(GEN x, long prec);5309GEN ggamma(GEN x, long prec);5310GEN ggamma1m1(GEN x, long prec);5311GEN glngamma(GEN x, long prec);5312GEN gpsi(GEN x, long prec);5313GEN gsinh(GEN x, long prec);5314GEN gtanh(GEN x, long prec);5315GEN mpfactr(long n, long prec);5316void mpsinhcosh(GEN x, GEN *s, GEN *c);5317GEN psi1series(long n, long v, long prec);5318GEN sumformal(GEN T, long v);53195320/* trans3.c */53215322int RgV_is_arithprog(GEN v, GEN *a, GEN *b);5323GEN besseljzero(GEN nu, long n, long b);5324GEN besselyzero(GEN nu, long n, long b);5325GEN constzeta(long n, long prec);5326GEN cxEk(GEN tau, long k, long prec);5327double dblmodulus(GEN x);5328GEN dilog(GEN x, long prec);5329GEN eint1(GEN x, long prec);5330GEN expIPiR(GEN x, long prec);5331GEN expIPiC(GEN z, long prec);5332GEN expIxy(GEN x, GEN y, long prec);5333GEN eta(GEN x, long prec);5334GEN eta0(GEN x, long flag,long prec);5335GEN gerfc(GEN x, long prec);5336GEN gpolylog(long m, GEN x, long prec);5337GEN gzeta(GEN x, long prec);5338GEN hbessel1(GEN n, GEN z, long prec);5339GEN hbessel2(GEN n, GEN z, long prec);5340GEN hyperu(GEN a, GEN b, GEN gx, long prec);5341GEN ibessel(GEN n, GEN z, long prec);5342GEN incgam(GEN a, GEN x, long prec);5343GEN incgam0(GEN a, GEN x, GEN z,long prec);5344GEN incgamc(GEN a, GEN x, long prec);5345GEN jbessel(GEN n, GEN z, long prec);5346GEN jbesselh(GEN n, GEN z, long prec);5347GEN jell(GEN x, long prec);5348GEN kbessel(GEN nu, GEN gx, long prec);5349GEN mpeint1(GEN x, GEN expx);5350GEN mpveceint1(GEN C, GEN eC, long n);5351GEN polylog0(long m, GEN x, long flag, long prec);5352GEN sumdedekind(GEN h, GEN k);5353GEN sumdedekind_coprime(GEN h, GEN k);5354GEN szeta(long x, long prec);5355GEN theta(GEN q, GEN z, long prec);5356GEN thetanullk(GEN q, long k, long prec);5357GEN trueeta(GEN x, long prec);5358GEN u_sumdedekind_coprime(long h, long k);5359GEN upper_to_cx(GEN x, long *prec);5360GEN veceint1(GEN nmax, GEN C, long prec);5361GEN vecthetanullk(GEN q, long k, long prec);5362GEN vecthetanullk_tau(GEN tau, long k, long prec);5363GEN veczeta(GEN a, GEN b, long N, long prec);5364GEN weber0(GEN x, long flag,long prec);5365GEN weberf(GEN x, long prec);5366GEN weberf1(GEN x, long prec);5367GEN weberf2(GEN x, long prec);5368GEN ybessel(GEN n, GEN z, long prec);5369GEN zetahurwitz(GEN s, GEN x, long der, long bitprec);53705371/* modsym.c */5372GEN SL2_inv_shallow(GEN M);5373GEN Qevproj_apply(GEN T, GEN pro);5374GEN Qevproj_apply_vecei(GEN T, GEN pro, long k);5375GEN Qevproj_down(GEN T, GEN pro);5376GEN Qevproj_init(GEN M);5377GEN RgX_act_Gl2Q(GEN g, long k);5378GEN RgX_act_ZGl2Q(GEN z, long k);5379void checkms(GEN W);5380void checkmspadic(GEN W);5381GEN ellpadiclambdamu(GEN E, long p, long D, long R);5382GEN mfnumcusps(GEN n);5383GEN mfnumcusps_fact(GEN fa);5384ulong mfnumcuspsu_fact(GEN fa);5385ulong mfnumcuspsu(ulong n);5386GEN msfromcusp(GEN W, GEN c);5387GEN msfromell(GEN E, long signe);5388GEN msfromhecke(GEN W, GEN v, GEN H);5389long msdim(GEN W);5390GEN mseval2_ooQ(GEN W, GEN xpm, GEN c);5391long msgetlevel(GEN W);5392long msgetsign(GEN W);5393long msgetweight(GEN W);5394GEN msatkinlehner(GEN W, long Q, GEN);5395GEN mscuspidal(GEN W, long flag);5396GEN mseisenstein(GEN W);5397GEN mseval(GEN W, GEN s, GEN p);5398GEN mshecke(GEN W, long p, GEN H);5399GEN msinit(GEN N, GEN k, long sign);5400GEN msissymbol(GEN W, GEN s);5401GEN mslattice(GEN M, GEN F);5402GEN msomseval(GEN W, GEN phi, GEN path);5403void mspadic_parse_chi(GEN s, GEN *s1, GEN *s2);5404GEN mspadic_unit_eigenvalue(GEN ap, long k, GEN p, long n);5405GEN mspadicinit(GEN W, long p, long n, long flag);5406GEN mspadicL(GEN oms, GEN s, long r);5407GEN mspadicmoments(GEN W, GEN phi, long D);5408GEN mspadicseries(GEN M, long teichi);5409GEN mspathgens(GEN W);5410GEN mspathlog(GEN W, GEN path);5411GEN msnew(GEN W);5412GEN mspetersson(GEN W, GEN F1, GEN F2);5413GEN mspolygon(GEN M, long flag);5414GEN msstar(GEN W, GEN);5415GEN msqexpansion(GEN W, GEN proV, ulong B);5416GEN mssplit(GEN W, GEN H, long deglim);5417GEN mstooms(GEN W, GEN phi);54185419/* mscosets.c */5420GEN mscosets0(GEN V, GEN code);5421GEN mscosets(GEN V, void *E, long (*in)(void *, GEN));5422GEN msfarey(GEN F, void *E, long (*in)(void *, GEN), GEN *pCM);5423GEN msfarey0(GEN F, GEN code, GEN *pCM);5424int checkfarey_i(GEN F);54255426/* zetamult.c */54275428GEN polylogmult(GEN avec, GEN zvec, long prec);5429GEN polylogmult_interpolate(GEN avec, GEN zvec, GEN t, long prec);5430GEN zetamult(GEN avec, long prec);5431GEN zetamultdual(GEN s);5432GEN zetamult_interpolate(GEN avec, GEN t, long prec);5433GEN zetamultall(long k, long flag, long prec);5434GEN zetamultconvert(GEN a, long fl);54355436/* level1.h */54375438INLINE ulong Fl_add(ulong a, ulong b, ulong p);5439INLINE ulong Fl_addmul_pre(ulong x0, ulong x1, ulong y0, ulong p, ulong pi);5440INLINE ulong Fl_addmulmul_pre(ulong x0, ulong y0, ulong x1, ulong y1, ulong p, ulong pi);5441INLINE long Fl_center(ulong u, ulong p, ulong ps2);5442INLINE ulong Fl_div(ulong a, ulong b, ulong p);5443INLINE ulong Fl_double(ulong a, ulong p);5444INLINE ulong Fl_ellj_pre(ulong a4, ulong a6, ulong p, ulong pi);5445INLINE ulong Fl_halve(ulong y, ulong p);5446INLINE ulong Fl_mul(ulong a, ulong b, ulong p);5447INLINE ulong Fl_mul_pre(ulong a, ulong b, ulong p, ulong pi);5448INLINE ulong Fl_neg(ulong x, ulong p);5449INLINE ulong Fl_sqr(ulong a, ulong p);5450INLINE ulong Fl_sqr_pre(ulong a, ulong p, ulong pi);5451INLINE ulong Fl_sub(ulong a, ulong b, ulong p);5452INLINE ulong Fl_triple(ulong a, ulong p);5453INLINE ulong Mod2(GEN x);5454INLINE ulong Mod4(GEN x);5455INLINE ulong Mod8(GEN x);5456INLINE ulong Mod16(GEN x);5457INLINE ulong Mod32(GEN x);5458INLINE ulong Mod64(GEN x);5459INLINE int abscmpiu(GEN x, ulong y);5460INLINE int abscmpui(ulong x, GEN y);5461INLINE int absequaliu(GEN x, ulong y);5462INLINE GEN absi(GEN x);5463INLINE GEN absi_shallow(GEN x);5464INLINE GEN absr(GEN x);5465INLINE int absrnz_equal1(GEN x);5466INLINE int absrnz_equal2n(GEN x);5467INLINE GEN addii(GEN x, GEN y);5468INLINE void addiiz(GEN x, GEN y, GEN z);5469INLINE GEN addir(GEN x, GEN y);5470INLINE void addirz(GEN x, GEN y, GEN z);5471INLINE GEN addis(GEN x, long s);5472INLINE GEN addri(GEN x, GEN y);5473INLINE void addriz(GEN x, GEN y, GEN z);5474INLINE GEN addrr(GEN x, GEN y);5475INLINE void addrrz(GEN x, GEN y, GEN z);5476INLINE GEN addrs(GEN x, long s);5477INLINE GEN addsi(long x, GEN y);5478INLINE void addsiz(long s, GEN y, GEN z);5479INLINE void addsrz(long s, GEN y, GEN z);5480INLINE GEN addss(long x, long y);5481INLINE void addssz(long s, long y, GEN z);5482INLINE GEN adduu(ulong x, ulong y);5483INLINE void affgr(GEN x, GEN y);5484INLINE void affii(GEN x, GEN y);5485INLINE void affiz(GEN x, GEN y);5486INLINE void affrr_fixlg(GEN y, GEN z);5487INLINE void affsi(long s, GEN x);5488INLINE void affsr(long s, GEN x);5489INLINE void affsz(long x, GEN y);5490INLINE void affui(ulong s, GEN x);5491INLINE void affur(ulong s, GEN x);5492INLINE GEN cgetg(long x, long y);5493INLINE GEN cgetg_block(long x, long y);5494INLINE GEN cgetg_copy(GEN x, long *plx);5495INLINE GEN cgeti(long x);5496INLINE GEN cgetineg(long x);5497INLINE GEN cgetipos(long x);5498INLINE GEN cgetr(long x);5499INLINE GEN cgetr_block(long prec);5500INLINE int cmpir(GEN x, GEN y);5501INLINE int cmpis(GEN x, long y);5502INLINE int cmpiu(GEN x, ulong y);5503INLINE int cmpri(GEN x, GEN y);5504INLINE int cmprs(GEN x, long y);5505INLINE int cmpsi(long x, GEN y);5506INLINE int cmpsr(long x, GEN y);5507INLINE int cmpss(long a, long b);5508INLINE int cmpui(ulong x, GEN y);5509INLINE int cmpuu(ulong a, ulong b);5510INLINE GEN cxtofp(GEN x, long prec);5511INLINE GEN divii(GEN a, GEN b);5512INLINE void diviiz(GEN x, GEN y, GEN z);5513INLINE void divirz(GEN x, GEN y, GEN z);5514INLINE void divisz(GEN x, long s, GEN z);5515INLINE void divriz(GEN x, GEN y, GEN z);5516INLINE void divrrz(GEN x, GEN y, GEN z);5517INLINE void divrsz(GEN y, long s, GEN z);5518INLINE GEN divsi_rem(long x, GEN y, long *rem);5519INLINE void divsiz(long x, GEN y, GEN z);5520INLINE void divsrz(long s, GEN y, GEN z);5521INLINE GEN divss(long x, long y);5522INLINE GEN divss_rem(long x, long y, long *rem);5523INLINE void divssz(long x, long y, GEN z);5524INLINE int dvdii(GEN x, GEN y);5525INLINE int dvdiiz(GEN x, GEN y, GEN z);5526INLINE int dvdis(GEN x, long y);5527INLINE int dvdisz(GEN x, long y, GEN z);5528INLINE int dvdiu(GEN x, ulong y);5529INLINE int dvdiuz(GEN x, ulong y, GEN z);5530INLINE int dvdsi(long x, GEN y);5531INLINE int dvdui(ulong x, GEN y);5532INLINE void dvmdiiz(GEN x, GEN y, GEN z, GEN t);5533INLINE GEN dvmdis(GEN x, long y, GEN *z);5534INLINE void dvmdisz(GEN x, long y, GEN z, GEN t);5535INLINE long dvmdsBIL(long n, long *r);5536INLINE GEN dvmdsi(long x, GEN y, GEN *z);5537INLINE void dvmdsiz(long x, GEN y, GEN z, GEN t);5538INLINE GEN dvmdss(long x, long y, GEN *z);5539INLINE void dvmdssz(long x, long y, GEN z, GEN t);5540INLINE ulong dvmduBIL(ulong n, ulong *r);5541INLINE int equalis(GEN x, long y);5542INLINE int equalsi(long x, GEN y);5543INLINE int equalui(ulong x, GEN y);5544INLINE int equaliu(GEN x, ulong y);5545INLINE int absequalui(ulong x, GEN y);5546INLINE ulong ceildivuu(ulong a, ulong b);5547INLINE long evalexpo(long x);5548INLINE long evallg(long x);5549INLINE long evalprecp(long x);5550INLINE long evalvalp(long x);5551INLINE long expi(GEN x);5552INLINE long expu(ulong x);5553INLINE void fixlg(GEN z, long ly);5554INLINE GEN fractor(GEN x, long prec);5555INLINE int gc_bool(pari_sp av, int s);5556INLINE GEN gc_const(pari_sp av, GEN x);5557INLINE double gc_double(pari_sp av, double d);5558INLINE int gc_int(pari_sp av, int s);5559INLINE long gc_long(pari_sp av, long s);5560INLINE ulong gc_ulong(pari_sp av, ulong s);5561INLINE GEN gc_NULL(pari_sp av);5562INLINE GEN icopy(GEN x);5563INLINE GEN icopyspec(GEN x, long nx);5564INLINE GEN icopy_avma(GEN x, pari_sp av);5565INLINE ulong int_bit(GEN x, long n);5566INLINE GEN itor(GEN x, long prec);5567INLINE long itos(GEN x);5568INLINE long itos_or_0(GEN x);5569INLINE ulong itou(GEN x);5570INLINE ulong itou_or_0(GEN x);5571INLINE GEN leafcopy(GEN x);5572INLINE GEN leafcopy_avma(GEN x, pari_sp av);5573INLINE double maxdd(double x, double y);5574INLINE long maxss(long x, long y);5575INLINE long maxuu(ulong x, ulong y);5576INLINE double mindd(double x, double y);5577INLINE long minss(long x, long y);5578INLINE long minuu(ulong x, ulong y);5579INLINE long mod16(GEN x);5580INLINE long mod2(GEN x);5581INLINE ulong mod2BIL(GEN x);5582INLINE long mod32(GEN x);5583INLINE long mod4(GEN x);5584INLINE long mod64(GEN x);5585INLINE long mod8(GEN x);5586INLINE GEN modis(GEN x, long y);5587INLINE void modisz(GEN y, long s, GEN z);5588INLINE GEN modsi(long x, GEN y);5589INLINE void modsiz(long s, GEN y, GEN z);5590INLINE GEN modss(long x, long y);5591INLINE void modssz(long s, long y, GEN z);5592INLINE GEN mpabs(GEN x);5593INLINE GEN mpabs_shallow(GEN x);5594INLINE GEN mpadd(GEN x, GEN y);5595INLINE void mpaddz(GEN x, GEN y, GEN z);5596INLINE void mpaff(GEN x, GEN y);5597INLINE GEN mpceil(GEN x);5598INLINE int mpcmp(GEN x, GEN y);5599INLINE GEN mpcopy(GEN x);5600INLINE GEN mpdiv(GEN x, GEN y);5601INLINE long mpexpo(GEN x);5602INLINE GEN mpfloor(GEN x);5603INLINE GEN mpmul(GEN x, GEN y);5604INLINE void mpmulz(GEN x, GEN y, GEN z);5605INLINE GEN mpneg(GEN x);5606INLINE int mpodd(GEN x);5607INLINE GEN mpround(GEN x);5608INLINE GEN mpshift(GEN x,long s);5609INLINE GEN mpsqr(GEN x);5610INLINE GEN mpsub(GEN x, GEN y);5611INLINE void mpsubz(GEN x, GEN y, GEN z);5612INLINE GEN mptrunc(GEN x);5613INLINE void muliiz(GEN x, GEN y, GEN z);5614INLINE void mulirz(GEN x, GEN y, GEN z);5615INLINE GEN mulis(GEN x, long s);5616INLINE GEN muliu(GEN x, ulong s);5617INLINE GEN mulri(GEN x, GEN s);5618INLINE void mulriz(GEN x, GEN y, GEN z);5619INLINE void mulrrz(GEN x, GEN y, GEN z);5620INLINE GEN mulrs(GEN x, long s);5621INLINE GEN mulru(GEN x, ulong s);5622INLINE void mulsiz(long s, GEN y, GEN z);5623INLINE void mulsrz(long s, GEN y, GEN z);5624INLINE void mulssz(long s, long y, GEN z);5625INLINE GEN negi(GEN x);5626INLINE GEN negr(GEN x);5627INLINE GEN new_chunk(size_t x);5628INLINE GEN rcopy(GEN x);5629INLINE GEN rdivii(GEN x, GEN y, long prec);5630INLINE void rdiviiz(GEN x, GEN y, GEN z);5631INLINE GEN rdivis(GEN x, long y, long prec);5632INLINE GEN rdivsi(long x, GEN y, long prec);5633INLINE GEN rdivss(long x, long y, long prec);5634INLINE GEN real2n(long n, long prec);5635INLINE GEN real_m2n(long n, long prec);5636INLINE GEN real_0(long prec);5637INLINE GEN real_0_bit(long bitprec);5638INLINE GEN real_1(long prec);5639INLINE GEN real_1_bit(long bit);5640INLINE GEN real_m1(long prec);5641INLINE GEN remii(GEN a, GEN b);5642INLINE void remiiz(GEN x, GEN y, GEN z);5643INLINE GEN remis(GEN x, long y);5644INLINE void remisz(GEN y, long s, GEN z);5645INLINE ulong remlll_pre(ulong u2, ulong u1, ulong u0, ulong p, ulong pi);5646INLINE GEN remsi(long x, GEN y);5647INLINE void remsiz(long s, GEN y, GEN z);5648INLINE GEN remss(long x, long y);5649INLINE void remssz(long s, long y, GEN z);5650INLINE GEN rtor(GEN x, long prec);5651INLINE long sdivsi(long x, GEN y);5652INLINE long sdivsi_rem(long x, GEN y, long *rem);5653INLINE long sdivss_rem(long x, long y, long *rem);5654INLINE void set_avma(ulong av);5655INLINE ulong uabsdiviu_rem(GEN n, ulong d, ulong *r);5656INLINE ulong udivuu_rem(ulong x, ulong y, ulong *r);5657INLINE ulong umodi2n(GEN x, long n);5658INLINE void setabssign(GEN x);5659INLINE void shift_left(GEN z2, GEN z1, long min, long M, ulong f, ulong sh);5660INLINE void shift_right(GEN z2, GEN z1, long min, long M, ulong f, ulong sh);5661INLINE ulong shiftl(ulong x, ulong y);5662INLINE ulong shiftlr(ulong x, ulong y);5663INLINE GEN shiftr(GEN x, long n);5664INLINE void shiftr_inplace(GEN z, long d);5665INLINE long smodis(GEN x, long y);5666INLINE long smodss(long x, long y);5667INLINE void stackdummy(pari_sp av, pari_sp ltop);5668INLINE char *stack_malloc(size_t N);5669INLINE char *stack_malloc_align(size_t N, long k);5670INLINE char *stack_calloc(size_t N);5671INLINE char *stack_calloc_align(size_t N, long k);5672INLINE GEN stoi(long x);5673INLINE GEN stor(long x, long prec);5674INLINE GEN subii(GEN x, GEN y);5675INLINE void subiiz(GEN x, GEN y, GEN z);5676INLINE GEN subir(GEN x, GEN y);5677INLINE void subirz(GEN x, GEN y, GEN z);5678INLINE GEN subis(GEN x, long y);5679INLINE void subisz(GEN y, long s, GEN z);5680INLINE GEN subri(GEN x, GEN y);5681INLINE void subriz(GEN x, GEN y, GEN z);5682INLINE GEN subrr(GEN x, GEN y);5683INLINE void subrrz(GEN x, GEN y, GEN z);5684INLINE GEN subrs(GEN x, long y);5685INLINE void subrsz(GEN y, long s, GEN z);5686INLINE GEN subsi(long x, GEN y);5687INLINE void subsiz(long s, GEN y, GEN z);5688INLINE void subsrz(long s, GEN y, GEN z);5689INLINE GEN subss(long x, long y);5690INLINE void subssz(long x, long y, GEN z);5691INLINE GEN subuu(ulong x, ulong y);5692INLINE void togglesign(GEN x);5693INLINE void togglesign_safe(GEN *px);5694INLINE void affectsign(GEN x, GEN y);5695INLINE void affectsign_safe(GEN x, GEN *py);5696INLINE GEN truedivii(GEN a,GEN b);5697INLINE GEN truedivis(GEN a, long b);5698INLINE GEN truedivsi(long a, GEN b);5699INLINE ulong uabsdivui_rem(ulong x, GEN y, ulong *rem);5700INLINE ulong umodsu(long x, ulong y);5701INLINE ulong umodui(ulong x, GEN y);5702INLINE ulong ugcdiu(GEN x, ulong y);5703INLINE ulong ugcdui(ulong y, GEN x);5704INLINE ulong umuluu_le(ulong x, ulong y, ulong n);5705INLINE ulong umuluu_or_0(ulong x, ulong y);5706INLINE GEN utoi(ulong x);5707INLINE GEN utoineg(ulong x);5708INLINE GEN utoipos(ulong x);5709INLINE GEN utor(ulong s, long prec);5710INLINE GEN uutoi(ulong x, ulong y);5711INLINE GEN uutoineg(ulong x, ulong y);5712INLINE long vali(GEN x);5713INLINE int varncmp(long x, long y);5714INLINE long varnmax(long x, long y);5715INLINE long varnmin(long x, long y);57165717/* pariinl.h */5718INLINE GEN abgrp_get_cyc(GEN x);5719INLINE GEN abgrp_get_gen(GEN x);5720INLINE GEN abgrp_get_no(GEN x);5721INLINE GEN bid_get_arch(GEN bid);5722INLINE GEN bid_get_archp(GEN bid);5723INLINE GEN bid_get_cyc(GEN bid);5724INLINE GEN bid_get_fact(GEN bid);5725INLINE GEN bid_get_fact2(GEN bid);5726INLINE GEN bid_get_gen(GEN bid);5727INLINE GEN bid_get_gen_nocheck(GEN bid);5728INLINE GEN bid_get_grp(GEN bid);5729INLINE GEN bid_get_ideal(GEN bid);5730INLINE GEN bid_get_mod(GEN bid);5731INLINE GEN bid_get_no(GEN bid);5732INLINE GEN bid_get_sarch(GEN bid);5733INLINE GEN bid_get_sprk(GEN bid);5734INLINE GEN bid_get_U(GEN bid);5735INLINE GEN bnf_get_clgp(GEN bnf);5736INLINE GEN bnf_get_cyc(GEN bnf);5737INLINE GEN bnf_get_fu(GEN bnf);5738INLINE GEN bnf_get_fu_nocheck(GEN bnf);5739INLINE GEN bnf_get_gen(GEN bnf);5740INLINE GEN bnf_get_logfu(GEN bnf);5741INLINE GEN bnf_get_nf(GEN bnf);5742INLINE GEN bnf_get_no(GEN bnf);5743INLINE GEN bnf_get_reg(GEN bnf);5744INLINE GEN bnf_get_sunits(GEN bnf);5745INLINE GEN bnf_get_tuU(GEN bnf);5746INLINE long bnf_get_tuN(GEN bnf);5747INLINE GEN bnr_get_bnf(GEN bnr);5748INLINE GEN bnr_get_clgp(GEN bnr);5749INLINE GEN bnr_get_cyc(GEN bnr);5750INLINE GEN bnr_get_gen(GEN bnr);5751INLINE GEN bnr_get_gen_nocheck(GEN bnr);5752INLINE GEN bnr_get_no(GEN bnr);5753INLINE GEN bnr_get_bid(GEN bnr);5754INLINE GEN bnr_get_mod(GEN bnr);5755INLINE GEN bnr_get_nf(GEN bnr);5756INLINE int checkell_i(GEN e);5757INLINE GEN cyc_get_expo(GEN c);5758INLINE GEN ell_get_a1(GEN e);5759INLINE GEN ell_get_a2(GEN e);5760INLINE GEN ell_get_a3(GEN e);5761INLINE GEN ell_get_a4(GEN e);5762INLINE GEN ell_get_a6(GEN e);5763INLINE GEN ell_get_b2(GEN e);5764INLINE GEN ell_get_b4(GEN e);5765INLINE GEN ell_get_b6(GEN e);5766INLINE GEN ell_get_b8(GEN e);5767INLINE GEN ell_get_c4(GEN e);5768INLINE GEN ell_get_c6(GEN e);5769INLINE GEN ell_get_disc(GEN e);5770INLINE GEN ell_get_j(GEN e);5771INLINE long ell_get_type(GEN e);5772INLINE int ell_is_inf(GEN z);5773INLINE GEN ellinf(void);5774INLINE GEN ellff_get_field(GEN x);5775INLINE GEN ellff_get_a4a6(GEN x);5776INLINE GEN ellnf_get_bnf(GEN x);5777INLINE GEN ellnf_get_nf(GEN x);5778INLINE GEN ellQp_get_p(GEN E);5779INLINE long ellQp_get_prec(GEN E);5780INLINE GEN ellQp_get_zero(GEN x);5781INLINE long ellR_get_prec(GEN x);5782INLINE long ellR_get_sign(GEN x);5783INLINE GEN gal_get_pol(GEN gal);5784INLINE GEN gal_get_p(GEN gal);5785INLINE GEN gal_get_e(GEN gal);5786INLINE GEN gal_get_mod(GEN gal);5787INLINE GEN gal_get_roots(GEN gal);5788INLINE GEN gal_get_invvdm(GEN gal);5789INLINE GEN gal_get_den(GEN gal);5790INLINE GEN gal_get_group(GEN gal);5791INLINE GEN gal_get_gen(GEN gal);5792INLINE GEN gal_get_orders(GEN gal);5793INLINE ulong hash_str(const char *str);5794INLINE ulong hash_str_len(const char *s, long len);5795INLINE GEN idealchineseinit(GEN nf, GEN x);5796INLINE GEN idealpseudomin(GEN I, GEN G);5797INLINE GEN idealpseudomin_nonscalar(GEN I, GEN G);5798INLINE GEN idealpseudominvec(GEN I, GEN G);5799INLINE GEN idealpseudored(GEN I, GEN G);5800INLINE GEN idealred_elt(GEN nf, GEN I);5801INLINE GEN idealred(GEN nf, GEN I);5802INLINE long logint(GEN B, GEN y);5803INLINE ulong ulogint(ulong B, ulong y);5804INLINE GEN modpr_get_pr(GEN x);5805INLINE GEN modpr_get_p(GEN x);5806INLINE GEN modpr_get_T(GEN x);5807INLINE GEN nf_get_M(GEN nf);5808INLINE GEN nf_get_G(GEN nf);5809INLINE GEN nf_get_Tr(GEN nf);5810INLINE GEN nf_get_diff(GEN nf);5811INLINE long nf_get_degree(GEN nf);5812INLINE GEN nf_get_disc(GEN nf);5813INLINE GEN nf_get_index(GEN nf);5814INLINE GEN nf_get_invzk(GEN nf);5815INLINE GEN nf_get_pol(GEN nf);5816INLINE long nf_get_r1(GEN nf);5817INLINE long nf_get_r2(GEN nf);5818INLINE GEN nf_get_ramified_primes(GEN nf);5819INLINE GEN nf_get_roots(GEN nf);5820INLINE GEN nf_get_roundG(GEN nf);5821INLINE void nf_get_sign(GEN nf, long *r1, long *r2);5822INLINE long nf_get_varn(GEN nf);5823INLINE GEN nf_get_zk(GEN nf);5824INLINE GEN nf_get_zkden(GEN nf);5825INLINE GEN nf_get_zkprimpart(GEN nf);5826INLINE long pr_get_e(GEN pr);5827INLINE long pr_get_f(GEN pr);5828INLINE GEN pr_get_gen(GEN pr);5829INLINE GEN pr_get_p(GEN pr);5830INLINE GEN pr_get_tau(GEN pr);5831INLINE int pr_is_inert(GEN P);5832INLINE GEN pr_norm(GEN pr);5833INLINE GEN rnf_get_alpha(GEN rnf);5834INLINE long rnf_get_absdegree(GEN rnf);5835INLINE long rnf_get_degree(GEN rnf);5836INLINE GEN rnf_get_disc(GEN rnf);5837INLINE GEN rnf_get_idealdisc(GEN rnf);5838INLINE GEN rnf_get_index(GEN rnf);5839INLINE GEN rnf_get_invzk(GEN rnf);5840INLINE GEN rnf_get_k(GEN rnf);5841INLINE GEN rnf_get_map(GEN rnf);5842INLINE GEN rnf_get_nf(GEN rnf);5843INLINE long rnf_get_nfdegree(GEN rnf);5844INLINE GEN rnf_get_nfpol(GEN rnf);5845INLINE long rnf_get_nfvarn(GEN rnf);5846INLINE GEN rnf_get_pol(GEN rnf);5847INLINE GEN rnf_get_polabs(GEN rnf);5848INLINE GEN rnf_get_ramified_primes(GEN rnf);5849INLINE GEN rnf_get_zk(GEN nf);5850INLINE GEN rnf_get_nfzk(GEN rnf);5851INLINE long rnf_get_varn(GEN rnf);5852INLINE ulong upr_norm(GEN pr);5853INLINE GEN znstar_get_N(GEN G);5854INLINE GEN znstar_get_conreycyc(GEN G);5855INLINE GEN znstar_get_conreygen(GEN G);5856INLINE GEN znstar_get_cyc(GEN G);5857INLINE GEN znstar_get_faN(GEN G);5858INLINE GEN znstar_get_gen(GEN G);5859INLINE GEN znstar_get_no(GEN G);5860INLINE GEN znstar_get_pe(GEN G);5861INLINE GEN znstar_get_U(GEN G);5862INLINE GEN znstar_get_Ui(GEN G);58635864INLINE long closure_arity(GEN C);5865INLINE const char * closure_codestr(GEN C);5866INLINE GEN closure_get_code(GEN C);5867INLINE GEN closure_get_oper(GEN C);5868INLINE GEN closure_get_data(GEN C);5869INLINE GEN closure_get_dbg(GEN C);5870INLINE GEN closure_get_text(GEN C);5871INLINE GEN closure_get_frame(GEN C);5872INLINE long closure_is_variadic(GEN C);58735874INLINE GEN addmuliu(GEN x, GEN y, ulong u);5875INLINE GEN addmuliu_inplace(GEN x, GEN y, ulong u);5876INLINE GEN lincombii(GEN u, GEN v, GEN x, GEN y);5877INLINE GEN mulsubii(GEN y, GEN z, GEN x);5878INLINE GEN submulii(GEN x, GEN y, GEN z);5879INLINE GEN submuliu(GEN x, GEN y, ulong u);5880INLINE GEN submuliu_inplace(GEN x, GEN y, ulong u);58815882INLINE GEN FpXQ_add(GEN x,GEN y,GEN T,GEN p);5883INLINE GEN FpXQ_sub(GEN x,GEN y,GEN T,GEN p);5884INLINE GEN Flxq_add(GEN x,GEN y,GEN T,ulong p);5885INLINE GEN Flxq_sub(GEN x,GEN y,GEN T,ulong p);58865887INLINE GEN FpXQX_div(GEN x, GEN y, GEN T, GEN p);5888INLINE GEN FlxqX_div(GEN x, GEN y, GEN T, ulong p);5889INLINE GEN F2xqX_div(GEN x, GEN y, GEN T);58905891INLINE GEN Rg_to_Fq(GEN x, GEN T, GEN p);5892INLINE GEN Fq_red(GEN x, GEN T, GEN p);5893INLINE GEN Fq_to_FpXQ(GEN x, GEN T, GEN p);5894INLINE GEN gener_Fq_local(GEN T, GEN p, GEN L);5895INLINE GEN FpXY_Fq_evaly(GEN Q, GEN y, GEN T, GEN p, long vx);5896INLINE GEN FqX_Fp_mul(GEN P, GEN U, GEN T, GEN p);5897INLINE GEN FqX_Fq_mul(GEN P, GEN U, GEN T, GEN p);5898INLINE GEN FqX_add(GEN x,GEN y,GEN T,GEN p);5899INLINE GEN FqX_ddf(GEN f, GEN T, GEN p);5900INLINE GEN FqX_degfact(GEN f, GEN T, GEN p);5901INLINE GEN FqX_deriv(GEN f, GEN T, GEN p);5902INLINE GEN FqX_div(GEN x, GEN y, GEN T, GEN p);5903INLINE GEN FqX_div_by_X_x(GEN x, GEN y, GEN T, GEN p, GEN *z);5904INLINE GEN FqX_divrem(GEN x, GEN y, GEN T, GEN p, GEN *z);5905INLINE GEN FqX_extgcd(GEN P,GEN Q,GEN T,GEN p, GEN *U, GEN *V);5906INLINE GEN FqX_factor(GEN f, GEN T, GEN p);5907INLINE GEN FqX_factor_squarefree(GEN f, GEN T, GEN p);5908INLINE GEN FqX_gcd(GEN P, GEN Q, GEN T, GEN p);5909INLINE GEN FqX_get_red(GEN S, GEN T, GEN p);5910INLINE GEN FqX_halfgcd(GEN P,GEN Q,GEN T,GEN p);5911INLINE GEN FqX_halve(GEN x, GEN T, GEN p);5912INLINE GEN FqX_integ(GEN f, GEN T, GEN p);5913INLINE GEN FqX_mul(GEN x, GEN y, GEN T, GEN p);5914INLINE GEN FqX_mulu(GEN x, ulong y, GEN T, GEN p);5915INLINE GEN FqX_neg(GEN x, GEN T, GEN p);5916INLINE GEN FqX_normalize(GEN z, GEN T, GEN p);5917INLINE GEN FqX_powu(GEN x, ulong n, GEN T, GEN p);5918INLINE GEN FqX_red(GEN z, GEN T, GEN p);5919INLINE GEN FqX_rem(GEN x, GEN y, GEN T, GEN p);5920INLINE GEN FqX_roots(GEN f, GEN T, GEN p);5921INLINE GEN FqX_sqr(GEN x, GEN T, GEN p);5922INLINE GEN FqX_sub(GEN x,GEN y,GEN T,GEN p);5923INLINE GEN FqX_to_mod(GEN f, GEN T, GEN p);59245925INLINE GEN FqXQ_add(GEN x, GEN y, GEN S, GEN T, GEN p);5926INLINE GEN FqXQ_div(GEN x, GEN y, GEN S, GEN T, GEN p);5927INLINE GEN FqXQ_inv(GEN x, GEN S, GEN T, GEN p);5928INLINE GEN FqXQ_invsafe(GEN x, GEN S, GEN T, GEN p);5929INLINE GEN FqXQ_mul(GEN x, GEN y, GEN S, GEN T, GEN p);5930INLINE GEN FqXQ_pow(GEN x, GEN n, GEN S, GEN T, GEN p);5931INLINE GEN FqXQ_sqr(GEN x, GEN S, GEN T, GEN p);5932INLINE GEN FqXQ_sub(GEN x, GEN y, GEN S, GEN T, GEN p);59335934INLINE GEN FqXn_exp(GEN x, long n, GEN T, GEN p);5935INLINE GEN FqXn_expint(GEN x, long n, GEN T, GEN p);5936INLINE GEN FqXn_inv(GEN x, long n, GEN T, GEN p);5937INLINE GEN FqXn_mul(GEN x, GEN y, long n, GEN T, GEN p);5938INLINE GEN FqXn_sqr(GEN x, long n, GEN T, GEN p);59395940INLINE long get_F2x_degree(GEN T);5941INLINE GEN get_F2x_mod(GEN T);5942INLINE long get_F2x_var(GEN T);5943INLINE long get_F2xqX_degree(GEN T);5944INLINE GEN get_F2xqX_mod(GEN T);5945INLINE long get_F2xqX_var(GEN T);5946INLINE long get_Flx_degree(GEN T);5947INLINE GEN get_Flx_mod(GEN T);5948INLINE long get_Flx_var(GEN T);5949INLINE long get_FlxqX_degree(GEN T);5950INLINE GEN get_FlxqX_mod(GEN T);5951INLINE long get_FlxqX_var(GEN T);5952INLINE long get_FpX_degree(GEN T);5953INLINE GEN get_FpX_mod(GEN T);5954INLINE long get_FpX_var(GEN T);5955INLINE long get_FpXQX_degree(GEN T);5956INLINE GEN get_FpXQX_mod(GEN T);5957INLINE long get_FpXQX_var(GEN T);59585959INLINE ulong F2m_coeff(GEN x, long a, long b);5960INLINE void F2m_clear(GEN x, long a, long b);5961INLINE void F2m_flip(GEN x, long a, long b);5962INLINE void F2m_set(GEN x, long a, long b);5963INLINE void F2v_clear(GEN x,long v);5964INLINE ulong F2v_coeff(GEN x,long v);5965INLINE void F2v_flip(GEN x,long v);5966INLINE GEN F2v_to_F2x(GEN x, long sv);5967INLINE void F2v_set(GEN x,long v);5968INLINE void F2x_clear(GEN x,long v);5969INLINE ulong F2x_coeff(GEN x,long v);5970INLINE void F2x_flip(GEN x,long v);5971INLINE void F2x_set(GEN x,long v);5972INLINE int F2x_equal1(GEN x);5973INLINE int F2x_equal(GEN V, GEN W);5974INLINE GEN F2x_div(GEN x, GEN y);5975INLINE GEN F2x_renormalize(GEN x, long lx);5976INLINE GEN F2m_copy(GEN x);5977INLINE GEN F2v_copy(GEN x);5978INLINE GEN F2x_copy(GEN x);5979INLINE GEN F2v_ei(long n, long i);5980INLINE ulong F3m_coeff(GEN x, long a, long b);5981INLINE void F3m_set(GEN x, long a, long b, ulong c);5982INLINE GEN F3m_copy(GEN x);5983INLINE GEN Flm_copy(GEN x);5984INLINE GEN Flv_copy(GEN x);5985INLINE int Flx_equal1(GEN x);5986INLINE ulong Flx_constant(GEN x);5987INLINE GEN Flx_copy(GEN x);5988INLINE GEN Flx_div(GEN x, GEN y, ulong p);5989INLINE ulong Flx_lead(GEN x);5990INLINE GEN Flx_mulu(GEN x, ulong a, ulong p);5991INLINE GEN Fp_divu(GEN x, ulong a, GEN p);5992INLINE GEN FpV_FpC_mul(GEN x, GEN y, GEN p);5993INLINE GEN FpXQX_renormalize(GEN x, long lx);5994INLINE GEN FpXX_renormalize(GEN x, long lx);5995INLINE GEN FpX_div(GEN x, GEN y, GEN p);5996INLINE GEN FpX_renormalize(GEN x, long lx);5997INLINE GEN Fp_add(GEN a, GEN b, GEN m);5998INLINE GEN Fp_addmul(GEN x, GEN y, GEN z, GEN p);5999INLINE GEN Fp_center(GEN u, GEN p, GEN ps2);6000INLINE GEN Fp_center_i(GEN u, GEN p, GEN ps2);6001INLINE GEN Fp_div(GEN a, GEN b, GEN m);6002INLINE GEN Fp_halve(GEN y, GEN p);6003INLINE GEN Fp_inv(GEN a, GEN m);6004INLINE GEN Fp_invsafe(GEN a, GEN m);6005INLINE GEN Fp_mul(GEN a, GEN b, GEN m);6006INLINE GEN Fp_muls(GEN a, long b, GEN m);6007INLINE GEN Fp_mulu(GEN a, ulong b, GEN m);6008INLINE GEN Fp_neg(GEN b, GEN m);6009INLINE GEN Fp_red(GEN x, GEN p);6010INLINE GEN Fp_sqr(GEN a, GEN m);6011INLINE GEN Fp_sub(GEN a, GEN b, GEN m);6012INLINE GEN GENbinbase(GENbin *p);6013INLINE GEN Q_abs(GEN x);6014INLINE GEN Q_abs_shallow(GEN x);6015INLINE int QV_isscalar(GEN x);6016INLINE void Qtoss(GEN q, long *n, long *d);6017INLINE GEN R_abs(GEN x);6018INLINE GEN R_abs_shallow(GEN x);6019INLINE GEN RgC_fpnorml2(GEN x, long prec);6020INLINE GEN RgC_gtofp(GEN x, long prec);6021INLINE GEN RgC_gtomp(GEN x, long prec);6022INLINE void RgM_dimensions(GEN x, long *m, long *n);6023INLINE GEN RgM_fpnorml2(GEN x, long prec);6024INLINE GEN RgM_gtofp(GEN x, long prec);6025INLINE GEN RgM_gtomp(GEN x, long prec);6026INLINE GEN RgM_minor(GEN a, long i, long j);6027INLINE GEN RgM_shallowcopy(GEN x);6028INLINE GEN RgV_gtofp(GEN x, long prec);6029INLINE int RgV_isscalar(GEN x);6030INLINE long RgV_isin(GEN v, GEN x);6031INLINE long RgV_isin_i(GEN v, GEN x, long n);6032INLINE int RgV_is_ZV(GEN x);6033INLINE int RgV_is_QV(GEN x);6034INLINE long RgX_equal_var(GEN x, GEN y);6035INLINE int RgX_is_monomial(GEN x);6036INLINE int RgX_is_rational(GEN x);6037INLINE int RgX_is_QX(GEN x);6038INLINE int RgX_is_ZX(GEN x);6039INLINE int RgX_isscalar(GEN x);6040INLINE GEN RgX_shift_inplace(GEN x, long v);6041INLINE void RgX_shift_inplace_init(long v);6042INLINE GEN RgX_to_RgV(GEN x, long N);6043INLINE GEN RgXQX_div(GEN x, GEN y, GEN T);6044INLINE GEN RgXQX_rem(GEN x, GEN y, GEN T);6045INLINE GEN RgX_coeff(GEN x, long n);6046INLINE GEN RgX_copy(GEN x);6047INLINE GEN RgX_div(GEN x, GEN y);6048INLINE GEN RgX_fpnorml2(GEN x, long prec);6049INLINE GEN RgX_gtofp(GEN x, long prec);6050INLINE GEN RgX_renormalize(GEN x);6051INLINE GEN Rg_col_ei(GEN x, long n, long i);6052INLINE GEN ZC_hnfrem(GEN x, GEN y);6053INLINE GEN ZM_hnfrem(GEN x, GEN y);6054INLINE GEN ZM_lll(GEN x, double D, long f);6055INLINE int ZV_dvd(GEN x, GEN y);6056INLINE int ZV_isscalar(GEN x);6057INLINE GEN ZV_to_zv(GEN x);6058INLINE int ZX_equal1(GEN x);6059INLINE int ZX_is_monic(GEN x);6060INLINE GEN ZX_renormalize(GEN x, long lx);6061INLINE GEN ZXQ_mul(GEN x,GEN y,GEN T);6062INLINE GEN ZXQ_sqr(GEN x,GEN T);6063INLINE long Z_ispower(GEN x, ulong k);6064INLINE long Z_issquare(GEN x);6065INLINE GEN absfrac(GEN x);6066INLINE GEN absfrac_shallow(GEN x);6067INLINE GEN affc_fixlg(GEN x, GEN res);6068INLINE GEN bin_copy(GENbin *p);6069INLINE long bit_accuracy(long x);6070INLINE double bit_accuracy_mul(long x, double y);6071INLINE long bit_prec(GEN x);6072INLINE int both_odd(long x, long y);6073INLINE GEN cbrtr(GEN x);6074INLINE GEN cbrtr_abs(GEN x);6075INLINE GEN cgetc(long x);6076INLINE GEN cgetalloc(long t, size_t l);6077INLINE void cgiv(GEN x);6078INLINE GEN col_ei(long n, long i);6079INLINE GEN const_col(long n, GEN x);6080INLINE GEN const_vec(long n, GEN x);6081INLINE GEN const_vecsmall(long n, long c);6082INLINE GEN constant_coeff(GEN x);6083INLINE GEN cxcompotor(GEN z, long prec);6084INLINE GEN cxnorm(GEN x);6085INLINE GEN cxtoreal(GEN q);6086INLINE GEN cyclic_perm(long l, long d);6087INLINE double dbllog2r(GEN x);6088INLINE long degpol(GEN x);6089INLINE long divsBIL(long n);6090INLINE void gabsz(GEN x, long prec, GEN z);6091INLINE GEN gaddgs(GEN y, long s);6092INLINE void gaddz(GEN x, GEN y, GEN z);6093INLINE int gcmpgs(GEN y, long s);6094INLINE void gdiventz(GEN x, GEN y, GEN z);6095INLINE GEN gdivsg(long s, GEN y);6096INLINE void gdivz(GEN x, GEN y, GEN z);6097INLINE GEN gen_I(void);6098INLINE void gerepileall(pari_sp av, int n, ...);6099INLINE void gerepilecoeffs(pari_sp av, GEN x, int n);6100INLINE GEN gerepilecopy(pari_sp av, GEN x);6101INLINE void gerepilemany(pari_sp av, GEN* g[], int n);6102INLINE int gequalgs(GEN y, long s);6103INLINE GEN gerepileupto(pari_sp av, GEN q);6104INLINE GEN gerepileuptoint(pari_sp av, GEN q);6105INLINE GEN gerepileuptoleaf(pari_sp av, GEN q);6106INLINE int gisdouble(GEN x, double *g);6107INLINE GEN gmax_shallow(GEN x, GEN y);6108INLINE GEN gmaxsg(long s, GEN y);6109INLINE GEN gmin_shallow(GEN x, GEN y);6110INLINE GEN gminsg(long s, GEN y);6111INLINE void gmodz(GEN x, GEN y, GEN z);6112INLINE void gmul2nz(GEN x, long s, GEN z);6113INLINE GEN gmulgs(GEN y, long s);6114INLINE void gmulz(GEN x, GEN y, GEN z);6115INLINE void gnegz(GEN x, GEN z);6116INLINE void gshiftz(GEN x, long s, GEN z);6117INLINE GEN gsubgs(GEN y, long s);6118INLINE void gsubz(GEN x, GEN y, GEN z);6119INLINE double gtodouble(GEN x);6120INLINE GEN gtofp(GEN z, long prec);6121INLINE GEN gtomp(GEN z, long prec);6122INLINE long gtos(GEN x);6123INLINE ulong gtou(GEN x);6124INLINE void guncloneNULL(GEN x);6125INLINE void guncloneNULL_deep(GEN x);6126INLINE long gval(GEN x, long v);6127INLINE GEN identity_perm(long l);6128INLINE GEN identity_zv(long n);6129INLINE GEN identity_ZV(long n);6130INLINE int equali1(GEN n);6131INLINE int equalim1(GEN n);6132INLINE long inf_get_sign(GEN x);6133INLINE GEN inv_content(GEN c);6134INLINE int is_bigint(GEN n);6135INLINE int is_const_t(long t);6136INLINE int is_extscalar_t(long t);6137INLINE int is_intreal_t(long t);6138INLINE int is_matvec_t(long t);6139INLINE int is_noncalc_t(long tx);6140INLINE int is_pm1(GEN n);6141INLINE int is_qfb_t(long t);6142INLINE int is_rational_t(long t);6143INLINE int is_real_t(long t);6144INLINE int is_recursive_t(long t);6145INLINE int is_scalar_t(long t);6146INLINE int is_universal_constant(GEN x);6147INLINE int is_vec_t(long t);6148INLINE int isint1(GEN x);6149INLINE int isintm1(GEN x);6150INLINE int isintzero(GEN x);6151INLINE int ismpzero(GEN x);6152INLINE int isonstack(GEN x);6153INLINE void killblock(GEN x);6154INLINE GEN leading_coeff(GEN x);6155INLINE void lg_increase(GEN x);6156INLINE long lgcols(GEN x);6157INLINE long lgpol(GEN x);6158INLINE GEN div_content(GEN cx, GEN cy);6159INLINE GEN matpascal(long n);6160INLINE GEN matslice(GEN A, long x1, long x2, long y1, long y2);6161INLINE GEN mkcol(GEN x);6162INLINE GEN mkcol2(GEN x, GEN y);6163INLINE GEN mkcol2s(long x, long y);6164INLINE GEN mkcol3(GEN x, GEN y, GEN z);6165INLINE GEN mkcol3s(long x, long y, long z);6166INLINE GEN mkcol4(GEN x, GEN y, GEN z, GEN t);6167INLINE GEN mkcol4s(long x, long y, long z, long t);6168INLINE GEN mkcol5(GEN x, GEN y, GEN z, GEN t, GEN u);6169INLINE GEN mkcol6(GEN x, GEN y, GEN z, GEN t, GEN u, GEN v);6170INLINE GEN mkcolcopy(GEN x);6171INLINE GEN mkcols(long x);6172INLINE GEN mkcomplex(GEN x, GEN y);6173INLINE GEN mkerr(long n);6174INLINE GEN mkmoo(void);6175INLINE GEN mkoo(void);6176INLINE GEN mkfrac(GEN x, GEN y);6177INLINE GEN mkfracss(long x, long y);6178INLINE GEN mkfraccopy(GEN x, GEN y);6179INLINE GEN mkintmod(GEN x, GEN y);6180INLINE GEN mkintmodu(ulong x, ulong y);6181INLINE GEN mkmat(GEN x);6182INLINE GEN mkmat2(GEN x, GEN y);6183INLINE GEN mkmat22(GEN a, GEN b, GEN c, GEN d);6184INLINE GEN mkmat22s(long a, long b, long c, long d);6185INLINE GEN mkmat3(GEN x, GEN y, GEN z);6186INLINE GEN mkmat4(GEN x, GEN y, GEN z, GEN t);6187INLINE GEN mkmat5(GEN x, GEN y, GEN z, GEN t, GEN u);6188INLINE GEN mkmatcopy(GEN x);6189INLINE GEN mkpolmod(GEN x, GEN y);6190INLINE GEN mkqfb(GEN x, GEN y, GEN z, GEN d);6191INLINE GEN mkquad(GEN n, GEN x, GEN y);6192INLINE GEN mkrfrac(GEN x, GEN y);6193INLINE GEN mkrfraccopy(GEN x, GEN y);6194INLINE GEN mkvec(GEN x);6195INLINE GEN mkvec2(GEN x, GEN y);6196INLINE GEN mkvec2copy(GEN x, GEN y);6197INLINE GEN mkvec2s(long x, long y);6198INLINE GEN mkvec3(GEN x, GEN y, GEN z);6199INLINE GEN mkvec3s(long x, long y, long z);6200INLINE GEN mkvec4(GEN x, GEN y, GEN z, GEN t);6201INLINE GEN mkvec4s(long x, long y, long z, long t);6202INLINE GEN mkvec5(GEN x, GEN y, GEN z, GEN t, GEN u);6203INLINE GEN mkveccopy(GEN x);6204INLINE GEN mkvecs(long x);6205INLINE GEN mkvecsmall(long x);6206INLINE GEN mkvecsmall2(long x,long y);6207INLINE GEN mkvecsmall3(long x,long y,long z);6208INLINE GEN mkvecsmall4(long x,long y,long z,long t);6209INLINE GEN mkvecsmall5(long x,long y,long z,long t,long u);6210INLINE void mpcosz(GEN x, GEN z);6211INLINE void mpexpz(GEN x, GEN z);6212INLINE void mplogz(GEN x, GEN z);6213INLINE void mpsinz(GEN x, GEN z);6214INLINE GEN mul_content(GEN cx, GEN cy);6215INLINE GEN mul_denom(GEN cx, GEN cy);6216INLINE long nbits2nlong(long x);6217INLINE long nbits2extraprec(long x);6218INLINE long nbits2ndec(long x);6219INLINE long nbits2prec(long x);6220INLINE long nbits2lg(long x);6221INLINE long nbrows(GEN x);6222INLINE long nchar2nlong(long x);6223INLINE long ndec2nbits(long x);6224INLINE long ndec2nlong(long x);6225INLINE long ndec2prec(long x);6226INLINE void normalize_frac(GEN z);6227INLINE int odd(long x);6228INLINE void pari_free(void *pointer);6229INLINE void* pari_calloc(size_t size);6230INLINE void* pari_malloc(size_t bytes);6231INLINE void* pari_realloc(void *pointer,size_t size);6232INLINE void pari_realloc_ip(void **pointer,size_t size);6233INLINE GEN perm_conj(GEN s, GEN t);6234INLINE GEN perm_inv(GEN x);6235INLINE GEN perm_mul(GEN s, GEN t);6236INLINE GEN perm_sqr(GEN s);6237INLINE GEN pol_0(long v);6238INLINE GEN pol_1(long v);6239INLINE GEN pol_x(long v);6240INLINE GEN pol_xn(long n, long v);6241INLINE GEN pol_xnall(long n, long v);6242INLINE GEN pol0_F2x(long sv);6243INLINE GEN pol0_Flx(long sv);6244INLINE GEN pol1_F2x(long sv);6245INLINE GEN pol1_Flx(long sv);6246INLINE GEN polx_Flx(long sv);6247INLINE GEN polx_F2x(long sv);6248INLINE GEN polx_zx(long sv);6249INLINE GEN polxn_Flx(long n, long sv);6250INLINE GEN powii(GEN x, GEN n);6251INLINE GEN powIs(long n);6252INLINE long prec2nbits(long x);6253INLINE double prec2nbits_mul(long x, double y);6254INLINE long prec2ndec(long x);6255INLINE long precdbl(long x);6256INLINE GEN quad_disc(GEN x);6257INLINE GEN qfb_disc(GEN x);6258INLINE GEN qfb_disc3(GEN x, GEN y, GEN z);6259INLINE GEN quadnorm(GEN q);6260INLINE long remsBIL(long n);6261INLINE GEN row(GEN A, long x1);6262INLINE GEN Flm_row(GEN A, long x0);6263INLINE GEN row_i(GEN A, long x0, long x1, long x2);6264INLINE GEN zm_row(GEN x, long i);6265INLINE GEN rowcopy(GEN A, long x0);6266INLINE GEN rowpermute(GEN A, GEN p);6267INLINE GEN rowslice(GEN A, long x1, long x2);6268INLINE GEN rowslicepermute(GEN A, GEN p, long x1, long x2);6269INLINE GEN rowsplice(GEN a, long j);6270INLINE int ser_isexactzero(GEN x);6271INLINE GEN shallowcopy(GEN x);6272INLINE GEN sqrfrac(GEN x);6273INLINE GEN sqrti(GEN x);6274INLINE GEN sqrtnr(GEN x, long n);6275INLINE GEN sqrtr(GEN x);6276INLINE GEN sstoQ(long n, long d);6277INLINE void pari_stack_alloc(pari_stack *s, long nb);6278INLINE void** pari_stack_base(pari_stack *s);6279INLINE void pari_stack_delete(pari_stack *s);6280INLINE void pari_stack_init(pari_stack *s, size_t size, void **data);6281INLINE long pari_stack_new(pari_stack *s);6282INLINE void pari_stack_pushp(pari_stack *s, void *u);6283INLINE long sturm(GEN x);6284INLINE GEN truecoef(GEN x, long n);6285INLINE GEN trunc_safe(GEN x);6286INLINE GEN vec_ei(long n, long i);6287INLINE GEN vec_append(GEN v, GEN s);6288INLINE GEN vec_lengthen(GEN v, long n);6289INLINE GEN vec_prepend(GEN v, GEN s);6290INLINE GEN vec_setconst(GEN v, GEN x);6291INLINE GEN vec_shorten(GEN v, long n);6292INLINE GEN vec_to_vecsmall(GEN z);6293INLINE GEN vecpermute(GEN A, GEN p);6294INLINE GEN vecreverse(GEN A);6295INLINE void vecreverse_inplace(GEN y);6296INLINE GEN vecsmallpermute(GEN A, GEN p);6297INLINE GEN vecslice(GEN A, long y1, long y2);6298INLINE GEN vecslicepermute(GEN A, GEN p, long y1, long y2);6299INLINE GEN vecsplice(GEN a, long j);6300INLINE GEN vecsmall_append(GEN V, long s);6301INLINE long vecsmall_coincidence(GEN u, GEN v);6302INLINE GEN vecsmall_concat(GEN u, GEN v);6303INLINE GEN vecsmall_copy(GEN x);6304INLINE GEN vecsmall_ei(long n, long i);6305INLINE long vecsmall_indexmax(GEN x);6306INLINE long vecsmall_indexmin(GEN x);6307INLINE long vecsmall_isin(GEN v, long x);6308INLINE GEN vecsmall_lengthen(GEN v, long n);6309INLINE int vecsmall_lexcmp(GEN x, GEN y);6310INLINE long vecsmall_max(GEN v);6311INLINE long vecsmall_min(GEN v);6312INLINE long vecsmall_pack(GEN V, long base, long mod);6313INLINE int vecsmall_prefixcmp(GEN x, GEN y);6314INLINE GEN vecsmall_prepend(GEN V, long s);6315INLINE GEN vecsmall_reverse(GEN A);6316INLINE GEN vecsmall_shorten(GEN v, long n);6317INLINE GEN vecsmall_to_col(GEN z);6318INLINE GEN vecsmall_to_vec(GEN z);6319INLINE GEN vecsmall_to_vec_inplace(GEN z);6320INLINE void vecsmalltrunc_append(GEN x, long t);6321INLINE GEN vecsmalltrunc_init(long l);6322INLINE void vectrunc_append(GEN x, GEN t);6323INLINE void vectrunc_append_batch(GEN x, GEN y);6324INLINE GEN vectrunc_init(long l);6325INLINE GEN coltrunc_init(long l);6326INLINE GEN zc_to_ZC(GEN x);6327INLINE GEN zero_F2m(long n, long m);6328INLINE GEN zero_F2m_copy(long n, long m);6329INLINE GEN zero_F2v(long m);6330INLINE GEN zero_F2x(long sv);6331INLINE GEN zero_Flm(long m, long n);6332INLINE GEN zero_Flm_copy(long m, long n);6333INLINE GEN zero_Flv(long n);6334INLINE GEN zero_Flx(long sv);6335INLINE GEN zero_zm(long x, long y);6336INLINE GEN zero_zv(long x);6337INLINE GEN zero_zx(long sv);6338INLINE GEN zerocol(long n);6339INLINE GEN zeromat(long m, long n);6340INLINE GEN zeromatcopy(long m, long n);6341INLINE GEN zeropadic(GEN p, long e);6342INLINE GEN zeropadic_shallow(GEN p, long e);6343INLINE GEN zeropol(long v);6344INLINE GEN zeroser(long v, long e);6345INLINE GEN zerovec(long n);6346INLINE GEN zerovec_block(long len);6347INLINE GEN zm_copy(GEN x);6348INLINE GEN zm_to_zxV(GEN x, long sv);6349INLINE GEN zm_transpose(GEN x);6350INLINE GEN zv_copy(GEN x);6351INLINE GEN zv_to_ZV(GEN x);6352INLINE GEN zv_to_zx(GEN x, long sv);6353INLINE GEN zx_renormalize(GEN x, long l);6354INLINE GEN zx_shift(GEN x, long n);6355INLINE GEN zx_to_zv(GEN x, long N);63566357INLINE GEN err_get_compo(GEN e, long i);6358INLINE long err_get_num(GEN e);6359INLINE void pari_err_BUG(const char *f);6360INLINE void pari_err_COMPONENT(const char *f, const char *op, GEN l, GEN x);6361INLINE void pari_err_CONSTPOL(const char *f);6362INLINE void pari_err_COPRIME(const char *f, GEN x, GEN y);6363INLINE void pari_err_DIM(const char *f);6364INLINE void pari_err_DOMAIN(const char *f, const char *v, const char *op, GEN l, GEN x);6365INLINE void pari_err_FILE(const char *f, const char *g);6366INLINE void pari_err_FILEDESC(const char *f, long n);6367INLINE void pari_err_FLAG(const char *f);6368INLINE void pari_err_IMPL(const char *f);6369INLINE void pari_err_INV(const char *f, GEN x);6370INLINE void pari_err_IRREDPOL(const char *f, GEN x);6371INLINE void pari_err_MAXPRIME(ulong c);6372INLINE void pari_err_MODULUS(const char *f, GEN x, GEN y);6373INLINE void pari_err_OP(const char *f, GEN x, GEN y);6374INLINE void pari_err_OVERFLOW(const char *f);6375INLINE void pari_err_PACKAGE(const char *f);6376INLINE void pari_err_PREC(const char *f);6377INLINE void pari_err_PRIME(const char *f, GEN x);6378INLINE void pari_err_PRIORITY(const char *f, GEN x, const char *op, long v);6379INLINE void pari_err_SQRTN(const char *f, GEN x);6380INLINE void pari_err_TYPE(const char *f, GEN x);6381INLINE void pari_err_TYPE2(const char *f, GEN x, GEN y);6382INLINE void pari_err_VAR(const char *f, GEN x, GEN y);6383INLINE void pari_err_ROOTS0(const char *f);63846385/* pic.c */6386void timers_printf(const char* msg1, const char* msg2, pari_timer* pCPU, pari_timer* pW);6387GEN matkerpadic(GEN A, GEN T, GEN pe, GEN p, long e);6388GEN mateqnpadic(GEN A, GEN T, GEN pe, GEN p, long e);6389GEN PicCard(GEN J);6390GEN PicAdd(GEN J, GEN W1, GEN W2);6391GEN PicChord(GEN J, GEN W1, GEN W2, long flag);6392GEN PicMul(GEN J, GEN W, GEN n, long flag);6393GEN PicNeg(GEN J, GEN W, long flag);6394GEN PicSub(GEN J, GEN W1, GEN W2);6395GEN PicAut(GEN J, GEN W, ulong nAut);6396GEN PicFrob(GEN J, GEN W);6397GEN PicFrobInv(GEN J, GEN W);6398GEN PicFrobPoly(GEN J, GEN W, GEN F);6399ulong PicMember_val(GEN J, GEN W);6400ulong PicIsZero_val(GEN J, GEN W);6401ulong PicIsTors_val(GEN J, GEN W, GEN F);6402ulong PicEq_val(GEN J, GEN W1, GEN W2);6403int PicMember(GEN J, GEN W);6404int PicIsZero(GEN J, GEN W);6405int PicIsTors(GEN J, GEN W, GEN F);6406int PicEq(GEN J, GEN W1, GEN W2);6407GEN RRspaceEval(GEN L, GEN vars, GEN pts, GEN T, GEN pe, GEN p, long e);6408GEN PicTorsOrd(GEN J, GEN W, GEN l, long flag);6409GEN PicInit(GEN f, GEN Auts, ulong g, ulong d0, GEN L, GEN bad, GEN p, ulong a, long e, GEN Lp);6410GEN PicRand(GEN J, GEN randseed);6411GEN PicLiftTors(GEN J, GEN W, GEN l, long eini, long multiple_allowed);6412GEN PicSetPrec(GEN J, long e);6413GEN OnePol(GEN N, GEN D, GEN ImodF, GEN Jfrobmat, ulong l, GEN QqFrobMat, GEN T, GEN pe);6414GEN PicLift_worker(GEN V0j, ulong shift, GEN uv, GEN AinvB, GEN CAinv, GEN T, GEN pe21);6415GEN PicLiftTors_Chart_worker(GEN randseed, GEN J, GEN l, GEN U, GEN U0, GEN I, GEN KM, GEN pe1, GEN pe21, long e21, GEN c0, ulong P0, GEN P1);6416GEN TorsSpaceFrob_worker(GEN W1, GEN X1, GEN W2, GEN X2, GEN J);6417GEN PicEval_worker(GEN W, GEN J);6418GEN PicTorsPairingInit(GEN J, GEN l);6419GEN PicTorsPairing_Modl(GEN J, GEN FRparams, GEN W, GEN X);6420GEN PicTorsPairing(GEN J, GEN FRparams, GEN W, GEN X);6421GEN PicLC(GEN J, GEN C, GEN W);6422GEN PlaneZeta(GEN f, ulong p);6423GEN SuperZeta(GEN f, ulong m, ulong p);6424long TotalDegree(GEN F);6425GEN PolHomogenise(GEN f, GEN z, long D);6426long PtIsOnPlaneCurve(GEN F, GEN P);6427long PtIsOnSuperellCurve(GEN f, ulong m, GEN P);6428long PtIsOnHyperellCurve(GEN F, GEN P);6429GEN HyperPicInit(GEN f, GEN p, ulong a, long e, GEN P12);6430GEN SuperPicInit(GEN f, ulong m, GEN p, ulong a, long e, GEN P12);6431GEN SmoothPicInit(GEN f, GEN p, ulong a, long e, GEN P);6432GEN PicRandTors(GEN J, GEN l, GEN Chi, GEN Phi, GEN seed, long returnlpow);6433GEN PicTorsBasis_worker(GEN J, GEN l, GEN Chi, GEN Phi, GEN FRparams, GEN Lintests, GEN LinTestsNames, GEN seed);6434GEN PicTorsBasis(GEN J, GEN l, GEN Chi);6435GEN FpX_root_order_bound(GEN f, GEN p);6436GEN PicTorsGalRep(GEN J, GEN l, GEN Chi);6437GEN ProjGalRep(GEN R);6438GEN HyperGalRep(GEN f, GEN l, GEN p, ulong e, GEN P, GEN chi, ulong force_a);6439GEN SuperGalRep(GEN f, ulong m ,GEN l, GEN p, ulong e, GEN P, GEN chi, ulong force_a);6440GEN SmoothGalRep(GEN f, GEN l, GEN p, ulong e, GEN P, GEN chi, ulong force_a);6441GEN LMod_worker(GEN p, GEN Gchi, GEN S, long t, GEN Z, GEN zo, GEN MZ);6442GEN Ell_FillTors_worker(GEN Axes, GEN a4, ulong y, GEN T, GEN pe, GEN p, long e);6443GEN Ell_l1_worker(GEN EN, GEN a4, ulong y, GEN T, GEN pe, GEN p, long e);6444GEN M2_worker(GEN vw, GEN Ml1, GEN TH, GEN Mpts, GEN T, GEN pe);6445GEN TrE2qexp(GEN vw, ulong N, GEN H, GEN M, ulong w, GEN zpows, ulong B, GEN T, GEN pe, GEN p, long e);6446GEN M4qexp_worker(GEN pageV1, GEN V2gens, GEN U0, GEN T, GEN pe);6447GEN ModPicInit(ulong N, GEN H, GEN p, ulong a, long e, GEN Lp, long UseTp, ulong nbE, ulong qprec);6448GEN mfgalrep(GEN f, GEN l, GEN prange, ulong D, long UseTp, ulong nbE, ulong qprec);644964506451