Function: !_
Class: symbolic_operators
C-Name: gnot
Prototype: G
Description: 
 (negbool):bool:parens		$1
 (bool):negbool:parens		$1

Function: +_
Class: symbolic_operators
Description: 
 (small):small:parens			$1
 (int):int:parens:copy			$1
 (real):real:parens:copy		$1
 (mp):mp:parens:copy			$1
 (gen):gen:parens:copy			$1

Function: -_
Class: symbolic_operators
C-Name: gneg
Prototype: G
Description: 
 (small):small:parens		-$(1)
 (int):int			negi($1)
 (real):real			negr($1)
 (mp):mp			mpneg($1)
 (gen):gen			gneg($1)

Function: Col
Class: basic
Section: conversions
C-Name: gtocol
Prototype: DG
Help: Col({x=[]}): transforms the object x into a column vector.
 Empty vector if x is omitted
Description: 
 ():vec	cgetg(1,t_COL)
 (gen):vec	gtocol($1)

Function: Euler
Class: basic
Section: transcendental
C-Name: mpeuler
Prototype: p
Help: Euler=Euler(): Euler's constant with current precision
Description: 
 ():real:prec	mpeuler(prec)

Function: I
Class: basic
Section: transcendental
C-Name: geni
Prototype: 
Help: I=I(): square root of -1
Description: 
 ():gen	gi

Function: List
Class: basic
Section: conversions
C-Name: gtolist
Prototype: DG
Help: List({x=[]}): transforms the vector or list x into a list. Empty list
 if x is omitted
Description: 
 (?gen):list	gtolist($1)

Function: Mat
Class: basic
Section: conversions
C-Name: gtomat
Prototype: DG
Help: Mat({x=[]}): transforms any GEN x into a matrix. Empty matrix if x is
 omitted

Function: Mod
Class: basic
Section: conversions
C-Name: Mod0
Prototype: GGD0,L,
Help: Mod(x,y): creates 'x modulo y'.
Description: 
 (small, small):gen         gmodulss($1, $2)
 (small, small, #small):gen gmodulss($1, $2)
 (small, gen):gen           gmodulsg($1, $2)
 (small, gen, #small):gen   gmodulsg($1, $2)
 (gen, gen):gen             gmodulo($1, $2)
 (gen, gen, #small):gen     gmodulo($1, $2)

Function: O
Class: basic
Section: polynomials
Help: O(a^b): p-adic or power series zero with precision given by b

Function: O(_^_)
Class: gp2c_internal
Description: 
 (gen):gen          ggrando($1, 1)
 (1,small):gen      ggrando(gen_1, $2)
 (int,small):gen    zeropadic($1, $2)
 (gen,small):gen    ggrando($1, $2)
 (var,small):gen    zeroser($1, $2)

Function: Pi
Class: basic
Section: transcendental
C-Name: mppi
Prototype: p
Help: Pi=Pi(): the constant pi, with current precision
Description: 
 ():real:prec	mppi(prec)

Function: Pol
Class: basic
Section: conversions
C-Name: gtopoly
Prototype: GDn
Help: Pol(x,{v=x}): convert x (usually a vector or a power series) into a
 polynomial with variable v, starting with the leading coefficient
Description: 
 (gen,?var):pol  gtopoly($1, $2)

Function: Polrev
Class: basic
Section: conversions
C-Name: gtopolyrev
Prototype: GDn
Help: Polrev(x,{v=x}): convert x (usually a vector or a power series) into a
 polynomial with variable v, starting with the constant term
Description: 
 (gen,?var):pol  gtopolyrev($1, $2)

Function: Qfb
Class: basic
Section: conversions
C-Name: Qfb0
Prototype: GGGDGp
Help: Qfb(a,b,c,{D=0.}): binary quadratic form a*x^2+b*x*y+c*y^2. D is
 optional (0.0 by default) and initializes Shanks's distance if b^2-4*a*c>0

Function: Ser
Class: basic
Section: conversions
C-Name: gtoser
Prototype: GDn
Help: Ser(x,{v=x}): convert x (usually a vector) into a power series with
 variable v, starting with the constant coefficient

Function: Set
Class: basic
Section: conversions
C-Name: gtoset
Prototype: DG
Help: Set({x=[]}): convert x into a set, i.e. a row vector with strictly
 increasing coefficients. Empty set if x is omitted
Description: 
 ():vec	cgetg(1,t_VEC)
 (gen):vec	gtoset($1)

Function: Str
Class: basic
Section: conversions
C-Name: Str
Prototype: s*
Help: Str({str}*): concatenates its (string) argument into a single string
Description: 
 (gen):genstr:copy:parens	$genstr:1

Function: Strchr
Class: basic
Section: conversions
C-Name: Strchr
Prototype: G
Help: Strchr(x): converts x to a string, translating each integer into a character

Function: Strexpand
Class: basic
Section: conversions
C-Name: Strexpand
Prototype: s*
Help: Strexpand({str}*): concatenates its (string) argument into a single
 string, performing tilde expansion

Function: Strtex
Class: basic
Section: conversions
C-Name: Strtex
Prototype: s*
Help: Strtex({str}*): translates its (string) arguments to TeX format and
 returns the resulting string

Function: Vec
Class: basic
Section: conversions
C-Name: gtovec
Prototype: DG
Help: Vec({x=[]}): transforms the object x into a vector.
 Empty vector if x is omitted
Description: 
 ():vec	cgetg(1,t_VEC)
 (gen):vec	gtovec($1)

Function: Vecsmall
Class: basic
Section: conversions
C-Name: gtovecsmall
Prototype: DG
Help: Vecsmall({x=[]}): transforms the object x into a VECSMALL. Empty
 vector if x is omitted
Description: 
 (gen):vecsmall                gtovecsmall($1)

Function: _!
Class: symbolic_operators
C-Name: mpfact
Prototype: L
Description: 
 (small):int			mpfact($1)

Function: _!=_
Class: symbolic_operators
C-Name: gne
Prototype: GG
Description: 
 (small, small):bool:parens		$(1) != $(2)
 (lg, lg):bool:parens			$(1) != $(2)
 (small, int):bool:parens		cmpsi($1, $2) != 0
 (int, small):bool:parens		cmpis($1, $2) != 0
 (int, int):negbool			equalii($1, $2)
 (real,real):bool                       cmprr($1, $2) != 0
 (mp, mp):bool:parens			mpcmp($1, $2) != 0
 (typ, typ):bool:parens			$(1) != $(2)
 (typ, #str):bool:parens	 	$(1) != $(typ:2)
 (#str, typ):bool:parens	 	$(typ:1) != $(2)
 (str, str):bool                        strcmp($1, $2)
 (typ, typ):bool:parens	                $(1) != $(2)
 (small, gen):negbool                   gequalsg($1, $2)
 (gen, small):negbool                   gequalgs($1, $2)
 (gen, gen):negbool                     gequal($1, $2)

Function: _%=_
Class: symbolic_operators
Description: 
 (*small, small):small:parens            $1 = smodss($1, $2)
 (*int, small):int:parens                $1 = modis($1, $2)
 (*int, int):int:parens	                 $1 = modii($1, $2)
 (*pol, gen):gen:parens	                 $1 = gmod($1, $2)
 (*gen, small):gen:parens                $1 = gmodgs($1, $2)
 (*gen, gen):gen:parens	                 $1 = gmod($1, $2)

Function: _%_
Class: symbolic_operators
C-Name: gmod
Prototype: GG
Description: 
 (small, small):small		smodss($1, $2)
 (small, int):int		modsi($1, $2)
 (int, small):small		smodis($1, $2)
 (int, int):int	  	        modii($1, $2)
 (gen, small):gen		gmodgs($1, $2)
 (small, gen):gen		gmodsg($1, $2)
 (gen, gen):gen	  	        gmod($1, $2)

Function: _&&_
Class: symbolic_operators
Description: 
 (bool, bool):bool:parens               $(1) && $(2)

Function: _'
Class: symbolic_operators
C-Name: deriv
Prototype: GDn
Description: 
 (gen):gen                      deriv($1,-1)

Function: _*=_
Class: symbolic_operators
Description: 
 (*small, small):small:parens		$1 *= $(2)
 (*int, small):int:parens		 $1 = mulis($1, $2)
 (*int, int):int:parens			 $1 = mulii($1, $2)
 (*real, small):real:parens		 $1 = mulrs($1, $2)
 (*real, int):real:parens		 $1 = mulri($1, $2)
 (*real, real):real:parens		 $1 = mulrr($1, $2)
 (*mp, mp):mp:parens			 $1 = mpmul($1, $2)
 (*pol, small):gen:parens		 $1 = gmulgs($1, $2)
 (*pol, gen):gen:parens			 $1 = gmul($1, $2)
 (*vec, gen):gen:parens			 $1 = gmul($1, $2)
 (*gen, small):gen:parens		 $1 = gmulgs($1, $2)
 (*gen, gen):gen:parens			 $1 = gmul($1, $2)

Function: _*_
Class: symbolic_operators
C-Name: gmul
Prototype: GG
Description: 
 (small, small):small:parens	$(1)*$(2)
 (int, small):int		mulis($1, $2)
 (small, int):int		mulsi($1, $2)
 (int, int):int	  	        mulii($1, $2)
 (0, mp):small			($2, 0)/*for side effect*/
 (#small, real):real		mulsr($1, $2)
 (small, real):mp		mulsr($1, $2)
 (real, small):mp		mulrs($1, $2)
 (real, real):real	     	mulrr($1, $2)
 (mp, mp):mp	     	        mpmul($1, $2)
 (gen, small):gen		gmulgs($1, $2)
 (small, gen):gen		gmulsg($1, $2)
 (vecsmall, vecsmall):vecsmall	perm_mul($1, $2)
 (gen, gen):gen	  	        gmul($1, $2)

Function: _++
Class: symbolic_operators
Description: 
 (*bptr):bptr				++$1
 (*small):small				++$1
 (*lg):lg				++$1
 (*int):int:parens			 $1 = addis($1, 1)
 (*real):real:parens			 $1 = addrs($1, 1)
 (*mp):mp:parens			 $1 = mpadd($1, gen_1)
 (*pol):pol:parens			 $1 = gaddgs($1, 1)
 (*gen):gen:parens			 $1 = gaddgs($1, 1)

Function: _+=_
Class: symbolic_operators
Description: 
 (*small, small):small:parens		 $1 += $(2)
 (*lg, small):lg:parens		         $1 += $(2)
 (*int, small):int:parens		 $1 = addis($1, $2)
 (*int, int):int:parens			 $1 = addii($1, $2)
 (*real, small):real:parens		 $1 = addrs($1, $2)
 (*real, int):real:parens		 $1 = addir($2, $1)
 (*real, real):real:parens		 $1 = addrr($1, $2)
 (*mp, mp):mp:parens			 $1 = mpadd($1, $2)
 (*pol, small):gen:parens		 $1 = gaddgs($1, $2)
 (*pol, gen):gen:parens			 $1 = gadd($1, $2)
 (*vec, gen):gen:parens			 $1 = gadd($1, $2)
 (*gen, small):gen:parens		 $1 = gaddgs($1, $2)
 (*gen, gen):gen:parens			 $1 = gadd($1, $2)

Function: _+_
Class: symbolic_operators
C-Name: gadd
Prototype: GG
Description: 
 (lg, 1):small:parens		$(1)
 (small, small):small:parens	$(1) + $(2)
 (lg, small):lg:parens		$(1) + $(2)
 (small, lg):lg:parens		$(1) + $(2)
 (int, small):int		addis($1, $2)
 (small, int):int		addsi($1, $2)
 (int, int):int			addii($1, $2)
 (real, small):real		addrs($1, $2)
 (small, real):real		addsr($1, $2)
 (real, real):real		addrr($1, $2)
 (mp, real):real		mpadd($1, $2)
 (real, mp):real		mpadd($1, $2)
 (mp, mp):mp			mpadd($1, $2)
 (gen, small):gen		gaddgs($1, $2)
 (small, gen):gen		gaddsg($1, $2)
 (gen, gen):gen			gadd($1, $2)

Function: _--
Class: symbolic_operators
Description: 
 (*bptr):bptr				--$1
 (*small):small				--$1
 (*lg):lg				--$1
 (*int):int:parens			 $1 = subis($1, 1)
 (*real):real:parens			 $1 = subrs($1, 1)
 (*mp):mp:parens			 $1 = mpsub($1, gen_1)
 (*pol):pol:parens			 $1 = gsubgs($1, 1)
 (*gen):gen:parens			 $1 = gsubgs($1, 1)

Function: _-=_
Class: symbolic_operators
Description: 
 (*small, small):small:parens		 $1 -= $(2)
 (*lg, small):lg:parens			 $1 -= $(2)
 (*int, small):int:parens		 $1 = subis($1, $2)
 (*int, int):int:parens			 $1 = subii($1, $2)
 (*real, small):real:parens		 $1 = subrs($1, $2)
 (*real, int):real:parens		 $1 = subri($1, $2)
 (*real, real):real:parens		 $1 = subrr($1, $2)
 (*mp, mp):mp:parens			 $1 = mpsub($1, $2)
 (*pol, small):gen:parens		 $1 = gsubgs($1, $2)
 (*pol, gen):gen:parens			 $1 = gsub($1, $2)
 (*vec, gen):gen:parens			 $1 = gsub($1, $2)
 (*gen, small):gen:parens		 $1 = gsubgs($1, $2)
 (*gen, gen):gen:parens			 $1 = gsub($1, $2)

Function: _-_
Class: symbolic_operators
C-Name: gsub
Prototype: GG
Description: 
 (small, small):small:parens	$(1) - $(2)
 (lg, small):lg:parens	        $(1) - $(2)
 (int, small):int		subis($1, $2)
 (small, int):int		subsi($1, $2)
 (int, int):int	          	subii($1, $2)
 (real, small):real		subrs($1, $2)
 (small, real):real		subsr($1, $2)
 (real, real):real		subrr($1, $2)
 (mp, real):real		mpsub($1, $2)
 (real, mp):real	     	mpsub($1, $2)
 (mp, mp):mp	     	        mpsub($1, $2)
 (gen, small):gen		gsubgs($1, $2)
 (small, gen):gen		gsubsg($1, $2)
 (gen, gen):gen	  	        gsub($1, $2)

Function: _.a1
Class: member_functions
C-Name: member_a1
Prototype: G
Description: 
 (ell):gen:copy        gel($1, 1)

Function: _.a2
Class: member_functions
C-Name: member_a2
Prototype: G
Description: 
 (ell):gen:copy        gel($1, 2)

Function: _.a3
Class: member_functions
C-Name: member_a3
Prototype: G
Description: 
 (ell):gen:copy        gel($1, 3)

Function: _.a4
Class: member_functions
C-Name: member_a4
Prototype: G
Description: 
 (ell):gen:copy        gel($1, 4)

Function: _.a6
Class: member_functions
C-Name: member_a6
Prototype: G
Description: 
 (ell):gen:copy         gel($1, 5)

Function: _.area
Class: member_functions
C-Name: member_area
Prototype: G
Description: 
 (bell):gen:copy        gel($1, 19)

Function: _.b2
Class: member_functions
C-Name: member_b2
Prototype: G
Description: 
 (ell):gen:copy         gel($1, 6)

Function: _.b4
Class: member_functions
C-Name: member_b4
Prototype: G
Description: 
 (ell):gen:copy        gel($1, 7)

Function: _.b6
Class: member_functions
C-Name: member_b6
Prototype: G
Description: 
 (ell):gen:copy	       gel($1, 8)

Function: _.b8
Class: member_functions
C-Name: member_b8
Prototype: G
Description: 
 (ell):gen:copy        gel($1, 9)

Function: _.bid
Class: member_functions
C-Name: member_bid
Prototype: G
Description: 
 (gen):gen                      member_bid($1)

Function: _.bnf
Class: member_functions
C-Name: member_bnf
Prototype: G
Description: 
 (bnf):bnf:parens		$1
 (bnr):bnf:copy:parens		$bnf:1
 (gen):bnf                      member_bnf($1)

Function: _.c4
Class: member_functions
C-Name: member_c4
Prototype: G
Description: 
 (ell):gen:copy        gel($1, 10)

Function: _.c6
Class: member_functions
C-Name: member_c6
Prototype: G
Description: 
 (ell):gen:copy        gel($1, 11)

Function: _.clgp
Class: member_functions
C-Name: member_clgp
Prototype: G
Description: 
 (bnf):clgp:copy:parens		$clgp:1
 (bnr):clgp:copy:parens		$clgp:1
 (clgp):clgp:parens		$1
 (gen):clgp                     member_clgp($1)

Function: _.codiff
Class: member_functions
C-Name: member_codiff
Prototype: G

Function: _.cyc
Class: member_functions
C-Name: member_cyc
Prototype: G
Description: 
 (clgp):gen:copy                gel($1, 2)
 (gen):gen                      member_cyc($1)

Function: _.diff
Class: member_functions
C-Name: member_diff
Prototype: G
Description: 
 (nf):gen:copy                  gmael($1, 5, 5)
 (gen):gen                      member_diff($1)

Function: _.disc
Class: member_functions
C-Name: member_disc
Prototype: G
Description: 
 (nf):int:copy                  gel($1, 3)
 (ell):gen:copy                 gel($1, 12)
 (gen):gen                      member_disc($1)

Function: _.e
Class: member_functions
C-Name: member_e
Prototype: G
Description: 
 (prid):int:copy       gel($1, 3)

Function: _.eta
Class: member_functions
C-Name: member_eta
Prototype: G

Function: _.f
Class: member_functions
C-Name: member_f
Prototype: G
Description: 
 (prid):int:copy       gel($1, 4)

Function: _.fu
Class: member_functions
C-Name: member_fu
Prototype: G
Description: 
 (bnr):void		$"ray units not implemented"
 (bnf):gen:copy         gmael($1, 8, 5)
 (gen):gen:copy         gmael($1, 8, 5)

Function: _.futu
Class: member_functions
C-Name: member_futu
Prototype: G

Function: _.gen
Class: member_functions
C-Name: member_gen
Prototype: G
Description: 
 (gal):gen:copy        gel($1, 7)
 (clgp):gen:copy       gel($1, 3)
 (gen):gen             member_gen($1)

Function: _.group
Class: member_functions
C-Name: member_group
Prototype: G
Description: 
 (gal):gen:copy        gel($1, 6)

Function: _.index
Class: member_functions
C-Name: member_index
Prototype: G
Description: 
 (nf):int:copy                  gel($1, 4)
 (gen):int                      member_index($1)

Function: _.j
Class: member_functions
C-Name: member_j
Prototype: G
Description: 
 (ell):gen:copy        gel($1, 13)

Function: _.mod
Class: member_functions
C-Name: member_mod
Prototype: G

Function: _.nf
Class: member_functions
C-Name: member_nf
Prototype: G
Description: 
 (nf):nf:parens		$1
 (gen):nf               member_nf($1)

Function: _.no
Class: member_functions
C-Name: member_no
Prototype: G
Description: 
 (clgp):gen:copy                gel($1, 1)
 (gen):gen                      member_no($1)

Function: _.omega
Class: member_functions
C-Name: member_omega
Prototype: G

Function: _.orders
Class: member_functions
C-Name: member_orders
Prototype: G
Description: 
 (gal):vecsmall:copy   gel($1, 8)

Function: _.p
Class: member_functions
C-Name: member_p
Prototype: G
Description: 
 (gal):int:copy                 gmael($1, 2, 1)
 (prid):int:copy                gel($1, 1)
 (gen):int                      member_p($1)

Function: _.pol
Class: member_functions
C-Name: member_pol
Prototype: G
Description: 
 (gal):gen:copy                 gel($1, 1)
 (nf):gen:copyi                 gel($1, 1)
 (gen):gen                      member_pol($1)

Function: _.r1
Class: member_functions
C-Name: member_r1
Prototype: G
Description: 
 (nf):int:copy                  gmael($1, 2, 1)
 (gen):int                      member_r1($1)

Function: _.r2
Class: member_functions
C-Name: member_r2
Prototype: G
Description: 
 (nf):int:copy                  gmael($1, 2, 2)
 (gen):int                      member_r2($1)

Function: _.reg
Class: member_functions
C-Name: member_reg
Prototype: G
Description: 
 (bnr):void		$"ray regulator not implemented"
 (bnf):real:copy        gmael($1, 8, 2)
 (gen):real:copy        gmael($1, 8, 2)

Function: _.roots
Class: member_functions
C-Name: member_roots
Prototype: G
Description: 
 (gal):gen:copy                 gel($1, 3)
 (bell):gen:copy                gel($1, 14)
 (nf):gen:copy                  gel($1, 6)
 (gen):gen                      member_roots($1)

Function: _.sign
Class: member_functions
C-Name: member_sign
Prototype: G
Description: 
 (nf):vec:copy                  gel($1, 2)
 (gen):vec                      member_sign($1)

Function: _.t2
Class: member_functions
C-Name: member_t2
Prototype: G
Description: 
 (gen):vec                      member_t2($1)

Function: _.tate
Class: member_functions
C-Name: member_tate
Prototype: G

Function: _.tu
Class: member_functions
C-Name: member_tu
Prototype: G
Description: 
 (bnr):void            $"ray units not implemented"
 (bnf):gen:copy        gmael($1, 8, 4)
 (gen):gen:copy        gmael($1, 8, 4)

Function: _.tufu
Class: member_functions
C-Name: member_tufu
Prototype: G

Function: _.w
Class: member_functions
C-Name: member_w
Prototype: G
Description: 
 (bell):gen:copy       gel($1, 18)

Function: _.zk
Class: member_functions
C-Name: member_zk
Prototype: G
Description: 
 (nf):gen:copy         gel($1, 17)

Function: _.zkst
Class: member_functions
C-Name: member_zkst
Prototype: G
Description: 
 (bnr):gen:copy        gel($1, 2)

Function: _/=_
Class: symbolic_operators
Description: 
 (*small, gen):void	        $"cannot divide small: use \= instead."
 (*int, gen):void	        $"cannot divide int: use \= instead."
 (*real, real):real:parens               $1 = divrr($1, $2)
 (*real, small):real:parens              $1 = divrs($1, $2)
 (*real, mp):real:parens                 $1 = mpdiv($1, $2)
 (*mp, real):mp:parens	                 $1 = mpdiv($1, $2)
 (*pol, gen):gen:parens	        	 $1 = gdiv($1, $2)
 (*vec, gen):gen:parens	         	 $1 = gdiv($1, $2)
 (*gen, small):gen:parens                $1 = gdivgs($1, $2)
 (*gen, gen):gen:parens	  	         $1 = gdiv($1, $2)

Function: _/_
Class: symbolic_operators
C-Name: gdiv
Prototype: GG
Description: 
 (0, mp):small			($2, 0)/*for side effect*/
 (#small, real):real		divsr($1, $2)
 (small, real):mp		divsr($1, $2)
 (real, small):real		divrs($1, $2)
 (real, real):real		divrr($1, $2)
 (real, mp):real		mpdiv($1, $2)
 (mp, real):mp			mpdiv($1, $2)
 (1, gen):gen			ginv($2)
 (gen, small):gen		gdivgs($1, $2)
 (small, gen):gen		gdivsg($1, $2)
 (gen, gen):gen	  	        gdiv($1, $2)

Function: _<<=_
Class: symbolic_operators
Description: 
 (*small, small):small:parens		 $1 <<= $(2)
 (*int, small):int:parens	         $1 = shifti($1, $2)
 (*mp, small):mp:parens			 $1 = mpshift($1, $2)
 (*gen, small):mp:parens	         $1 = gshift($1, $2)

Function: _<<_
Class: symbolic_operators
C-Name: gshift
Prototype: GL
Description: 
 (int, small):int		shifti($1, $2)
 (mp, small):mp			mpshift($1, $2)
 (gen, small):mp		gshift($1, $2)

Function: _<=_
Class: symbolic_operators
C-Name: gle
Prototype: GG
Description: 
 (small, small):bool:parens		$(1) <= $(2)
 (small, lg):bool:parens		$(1) < $(2)
 (lg, lg):bool:parens			$(1) <= $(2)
 (small, int):bool:parens		cmpsi($1, $2) <= 0
 (int, lg):bool:parens			cmpis($1, $2) < 0
 (int, small):bool:parens		cmpis($1, $2) <= 0
 (int, int):bool:parens			cmpii($1, $2) <= 0
 (mp, mp):bool:parens			mpcmp($1, $2) <= 0
 (str, str):bool:parens			strcmp($1, $2) <= 0
 (small, gen):bool:parens		gcmpsg($1, $2) <= 0
 (gen, small):bool:parens		gcmpgs($1, $2) <= 0
 (gen, gen):bool:parens			gcmp($1, $2) <= 0

Function: _<_
Class: symbolic_operators
C-Name: glt
Prototype: GG
Description: 
 (small, small):bool:parens		$(1) < $(2)
 (lg, lg):bool:parens			$(1) < $(2)
 (lg, small):bool:parens		$(1) <= $(2)
 (small, int):bool:parens		cmpsi($1, $2) < 0
 (int, small):bool:parens		cmpis($1, $2) < 0
 (int, int):bool:parens			cmpii($1, $2) < 0
 (mp, mp):bool:parens			mpcmp($1, $2) < 0
 (str, str):bool:parens	 		strcmp($1, $2) < 0
 (small, gen):bool:parens		gcmpsg($1, $2) < 0
 (gen, small):bool:parens		gcmpgs($1, $2) < 0
 (gen, gen):bool:parens			gcmp($1, $2) < 0

Function: _==_
Class: symbolic_operators
C-Name: geq
Prototype: GG
Description: 
 (small, small):bool:parens             $(1) == $(2)
 (lg, lg):bool:parens                   $(1) == $(2)
 (small, int):bool:parens               cmpsi($1, $2) == 0
 (mp, 0):bool                           !signe($1)
 (@int, 1):bool:parens                  is_pm1($1) && signe($1)==1
 (int, 1):bool                          gcmp1($1)
 (@int, -1):bool:parens                 is_pm1($1) && signe($1)==-1
 (int, -1):bool                         gcmp_1($1)
 (int, small):bool:parens               cmpis($1, $2) == 0
 (int, int):bool                        equalii($1, $2)
 (gen, 0):bool                          gcmp0($1)
 (gen, 1):bool                          gcmp1($1)
 (gen, -1):bool                         gcmp_1($1)
 (real,real):bool                       cmprr($1, $2) == 0
 (mp, mp):bool:parens                   mpcmp($1, $2) == 0
 (typ, typ):bool:parens                 $(1) == $(2)
 (typ, #str):bool:parens                $(1) == $(typ:2)
 (#str, typ):bool:parens                $(typ:1) == $(2)
 (str, str):negbool                     strcmp($1, $2)
 (small, gen):bool                      gequalsg($1, $2)
 (gen, small):bool                      gequalgs($1, $2)
 (gen, gen):bool                        gequal($1, $2)

Function: _>=_
Class: symbolic_operators
C-Name: gge
Prototype: GG
Description: 
 (small, small):bool:parens		$(1) >= $(2)
 (lg, lg):bool:parens			$(1) >= $(2)
 (lg, small):bool:parens		$(1) > $(2)
 (small, int):bool:parens		cmpsi($1, $2) >= 0
 (int, small):bool:parens		cmpis($1, $2) >= 0
 (int, int):bool:parens			cmpii($1, $2) >= 0
 (mp, mp):bool:parens			mpcmp($1, $2) >= 0
 (str, str):bool:parens			strcmp($1, $2) >= 0
 (small, gen):bool:parens		gcmpsg($1, $2) >= 0
 (gen, small):bool:parens		gcmpgs($1, $2) >= 0
 (gen, gen):bool:parens			gcmp($1, $2) >= 0

Function: _>>=_
Class: symbolic_operators
Description: 
 (*small, small):small:parens	        $1 >>= $(2)
 (*int, small):int:parens	         $1 = shifti($1, -$(2))
 (*mp, small):mp:parens	                 $1 = mpshift($1, -$(2))
 (*gen, small):mp:parens	         $1 = gshift($1, -$(2))

Function: _>>_
Class: symbolic_operators
Description: 
 (small, small):small:parens	$(1)>>$(2)
 (int, small):int		shifti($1, -$(2))
 (mp, small):mp			mpshift($1, -$(2))
 (gen, small):mp                gshift($1, -$(2))

Function: _>_
Class: symbolic_operators
C-Name: ggt
Prototype: GG
Description: 
 (small, small):bool:parens		$(1) > $(2)
 (lg, lg):bool:parens			$(1) > $(2)
 (small, lg):bool:parens		$(1) >= $(2)
 (small, int):bool:parens		cmpsi($1, $2) > 0
 (int, small):bool:parens		cmpis($1, $2) > 0
 (int, int):bool:parens			cmpii($1, $2) > 0
 (mp, mp):bool:parens			mpcmp($1, $2) > 0
 (str, str):bool:parens			strcmp($1, $2) > 0
 (small, gen):bool:parens		gcmpsg($1, $2) > 0
 (gen, small):bool:parens		gcmpgs($1, $2) > 0
 (gen, gen):bool:parens			gcmp($1, $2) > 0

Function: _[_,]
Class: symbolic_operators
Description: 
 (mp,small):gen                 $"Scalar has no rows"
 (vec,small):vec                rowcopy($1, $2)
 (gen,small):vec                rowcopy($1, $2)

Function: _[_,_]
Class: symbolic_operators
Description: 
 (mp,small):gen                 $"Scalar has no components"
 (mp,small,small):gen           $"Scalar has no components"
 (vecsmall,small):small         $(1)[$2]
 (vecsmall,small,small):gen     $"Vecsmall are single-dimensional"
 (list,small):gen:copy          gel($1, $lg:2)
 (vec,small):gen:copy           gel($1, $2)
 (vec,small,small):gen:copy     gcoeff($1, $2, $3)
 (gen,small):gen:copy           gel($1, $2)
 (gen,small,small):gen:copy     gcoeff($1, $2, $3)

Function: _\/=_
Class: symbolic_operators
Description: 
 (*int, int):int:parens			 $1 = gdivround($1, $2)
 (*pol, gen):gen:parens			 $1 = gdivround($1, $2)
 (*gen, gen):gen:parens			 $1 = gdivround($1, $2)

Function: _\/_
Class: symbolic_operators
C-Name: gdivround
Prototype: GG
Description: 
 (int, int):int			gdivround($1, $2)
 (gen, gen):gen			gdivround($1, $2)

Function: _\=_
Class: symbolic_operators
Description: 
 (*small, small):small:parens		$1 /= $(2)
 (*int, int):int:parens			 $1 = gdivent($1, $2)
 (*pol, gen):gen:parens			 $1 = gdivent($1, $2)
 (*gen, gen):gen:parens			 $1 = gdivent($1, $2)

Function: _\_
Class: symbolic_operators
C-Name: gdivent
Prototype: GG
Description: 
 (small, small):small:parens		$(1)/$(2)
 (int, small):int			truedivis($1, $2)
 (small, int):int			gdiventsg($1, $2)
 (int, int):int				truedivii($1, $2)
 (gen, small):gen			gdiventgs($1, $2)
 (small, gen):gen			gdiventsg($1, $2)
 (gen, gen):gen				gdivent($1, $2)

Function: _^_
Class: symbolic_operators
C-Name: gpow
Prototype: GGp
Description: 
 (int, 2):int	        sqri($1)
 (int, 3):int	        gpowgs($1, 3)
 (int, 4):int	        gpowgs($1, 4)
 (int, 5):int	        gpowgs($1, 5)
 (real, -1):real	ginv($1)
 (mp, -1):mp	        ginv($1)
 (gen, -1):gen	        ginv($1)
 (real, 2):real	        gsqr($1)
 (mp, 2):mp	        gsqr($1)
 (gen, 2):gen	        gsqr($1)
 (real, small):real	gpowgs($1, $2)
 (gen, small):gen	gpowgs($1, $2)
 (real, int):real	powgi($1, $2)
 (gen, int):gen		powgi($1, $2)
 (gen, gen):gen:prec	gpow($1, $2, prec)

Function: __
Class: symbolic_operators
Description: 
 (genstr, genstr):genstr	        concat($1, $2)
 (genstr, gen):genstr		        concat($1, $2)
 (gen, genstr):genstr		        concat($1, $2)
 (gen, gen):genstr		        concat($genstr:1, $2)

Function: _avma
Class: gp2c_internal
Description: 
 ():pari_sp		avma

Function: _badtype
Class: gp2c_internal
Help: Code to check types. If not void, will be used as if(...).
Description: 
 (int):bool:parens              typ($1) != t_INT
 (real):bool:parens             typ($1) != t_REAL
 (mp):negbool                   is_intreal_t(typ($1))
 (vec):negbool                  is_matvec_t(typ($1))
 (vecsmall):bool:parens         typ($1) != t_VECSMALL
 (pol):bool:parens              typ($1) != t_POL
 (*nf):void:parens              $1 = checknf($1)
 (*bnf):void:parens             $1 = checkbnf($1)
 (bnr):void                     checkbnr($1)
 (prid):void                    checkprimeid($1)
 (@clgp):bool:parens            lg($1) != 3 || typ($(1)[2]) != t_POLMOD
 (ell):void                     checkell($1)
 (bell):void                    checkbell($1)
 (*gal):gal:parens              $1 = checkgal($1)

Function: _call_GG
Class: gp2c_internal
Help: Call a function with proto GG on two GENs
Description: 
 (func_GG, gen, gen):gen         $(1)($2, $3)

Function: _cast
Class: gp2c_internal
Help: (type1):type2 : cast expression of type1 to type2
Description: 
 (void):bool           0
 (#negbool):bool       ${1 value not}
 (negbool):bool        !$(1)
 (small_int):bool
 (small):bool
 (lg):bool:parens      $(1)!=1
 (bptr):bool           *$(1)
 (gen):bool            !gcmp0($1)
 (real):bool           signe($1)
 (int):bool            signe($1)
 (mp):bool             signe($1)
 (pol):bool            signe($1) 
 
 (void):negbool        1
 (#bool):negbool       ${1 value not}
 (bool):negbool        !$(1)
 (lg):negbool:parens   $(1)==1
 (bptr):negbool        !*$(1)
 (gen):negbool         gcmp0($1)
 (int):negbool         !signe($1)
 (real):negbool        !signe($1)
 (mp):negbool          !signe($1)
 (pol):negbool         !signe($1)
 
 (bool):small_int
 (typ):small_int 
 (small):small_int 
 
 (bool):small
 (typ):small 
 (small_int):small
 (bptr):small           *$(1)
 (int):small            itos($1)
 (#lg):small:parens     ${1 value 1 sub}
 (lg):small:parens      $(1)-1
 
 (void):int             gen_0
 (-1):int               gen_m1
 (0):int                gen_0
 (1):int                gen_1
 (2):int                gen_2
 (bool):int             stoi($1)
 (small):int            stoi($1)
 (mp):int
 (gen):int
 
 (mp):real
 (gen):real
 
 (int):mp
 (real):mp
 (gen):mp
 
 (#bool):lg:parens             ${1 1 value add}
 (bool):lg:parens              $(1)+1
 (#small):lg:parens            ${1 1 value add}
 (small):lg:parens             $(1)+1
 
 (gen):vecsmall
 
 (nf):vec
 (bnf):vec
 (bnr):vec
 (ell):vec
 (bell):vec
 (clgp):vec
 (prid):vec
 (gal):vec
 (gen):vec
 
 (gen):list
 
 (pol):var      varn($1)
 (gen):var      gvar($1)
 
 (var):pol      pol_x[$1]
 (gen):pol
 
 (int):gen
 (mp):gen
 (vecsmall):gen
 (vec):gen
 (list):gen
 (pol):gen
 (genstr):gen
 
 (gen):genstr GENtoGENstr($1)
 (str):genstr strtoGENstr($1)
 
 (genstr):str GSTR($1)
 (typ):str type_name($1)
 
 (#str):typ  ${1 str_format}
 
 (bnf):nf:parens       gel($1, 7)
 (gen):nf
 (bnr):bnf:parens      gel($1, 1)
 (gen):bnf
 (gen):bnr
 (bnf):clgp:parens     gmael($1, 8, 1)
 (bnr):clgp:parens     gel($1, 5)
 (gen):clgp
 (bell):ell
 (gen):ell
 (gen):bell
 (gen):gal
 (gen):prid

Function: _cgetg
Class: gp2c_internal
Description: 
 (lg,#str):gen              cgetg($1, ${2 str_raw})
 (gen,lg,#str):gen          $1 = cgetg($2, ${3 str_raw})

Function: _const_expr
Class: gp2c_internal
Description: 
 (str):gen       readseq($1)

Function: _const_quote
Class: gp2c_internal
Description: 
 (str):var       fetch_user_var($1)

Function: _const_real
Class: gp2c_internal
Description: 
 (str):real:prec       strtor($1, prec)

Function: _const_smallreal
Class: gp2c_internal
Description: 
 (0):real:prec       real_0(prec)
 (1):real:prec       real_1(prec)
 (-1):real:prec      real_m1(prec)
 (small):real:prec   stor($1, prec)

Function: _decl_base
Class: gp2c_internal
Description: 
 (C!void)          void
 (C!long)          long
 (C!int)           int
 (C!GEN)           GEN
 (C!char*)         char
 (C!byteptr)       byteptr
 (C!pari_sp)       pari_sp
 (C!func_GG)       GEN

Function: _decl_ext
Class: gp2c_internal
Description: 
 (C!char*)         *$1
 (C!func_GG)       (*$1)(GEN, GEN)

Function: _default_check
Class: gp2c_internal
Help: Code to check for the default marker
Description: 
 (C!GEN):bool    !$(1)
 (var):bool      $(1) == -1

Function: _default_marker
Class: gp2c_internal
Help: Code for default value of GP function
Description: 
 (C!GEN)      NULL
 (var)        -1
 (small)      0
 (str)        ""

Function: _diffptr
Class: gp2c_internal
Help: Table of difference of primes.
Description: 
 ():bptr        diffptr

Function: _err_primes
Class: gp2c_internal
Description: 
 ():void  pari_err(primer1)

Function: _err_type
Class: gp2c_internal
Description: 
 (str):void  pari_err(typeer, $1)

Function: _formatcode
Class: gp2c_internal
Description: 
 (#small):void	                $1
 (small):small	                %ld
 (#str):void	                $%1
 (str):str	                %s
 (gen):gen	                %Z

Function: _forprime_next
Class: gp2c_internal
Help: Compute the next prime from the diffptr table.
Description: 
 (*small,*bptr):void  NEXT_PRIME_VIADIFF($1, $2)

Function: _forvec_start
Class: gp2c_internal
Help: Initializes parameters for forvec_start.
Description: 
 (gen, small, &gen, &func_GG):vec    forvec_start($1, $2, &$3, &$4)

Function: _gerepileall
Class: gp2c_internal
Description: 
 (pari_sp,gen):void:parens    $2 = gerepilecopy($1, $2)
 (pari_sp,gen,...):void       gerepileall($1, ${nbarg 1 sub}, ${stdref 3 code})

Function: _gerepileupto
Class: gp2c_internal
Description: 
 (pari_sp, int):int               gerepileuptoint($1, $2)
 (pari_sp, mp):mp                 gerepileuptoleaf($1, $2)
 (pari_sp, vecsmall):vecsmall     gerepileuptoleaf($1, $2)
 (pari_sp, vec):vec               gerepileupto($1, $2)
 (pari_sp, gen):gen               gerepileupto($1, $2)

Function: _low_stack_lim
Class: gp2c_internal
Description: 
 (pari_sp,pari_sp):bool        low_stack($1, stack_lim($2, 1))

Function: _maxprime
Class: gp2c_internal
Description: 
 ():small		maxprime()

Function: _proto_code
Class: gp2c_internal
Help: Code for argument of a function
Description: 
 (var)          n
 (C!long)       L
 (C!GEN)        G
 (C!char*)      s

Function: _proto_ret
Class: gp2c_internal
Help: Code for return value of functions
Description: 
 (C!void)       v
 (C!int)        i
 (C!long)       l
 (C!GEN)

Function: _stack_lim
Class: gp2c_internal
Description: 
 (pari_sp,small):pari_sp       stack_lim($1, $2)

Function: _toGENstr
Class: gp2c_internal
Description: 
 (str):genstr	   strtoGENstr($1)
 (gen):genstr	   GENtoGENstr($1)

Function: _tovec
Class: gp2c_internal
Help: Create a vector holding the arguments (shallow)
Description: 
 (gen):vec               mkvec($1)
 (gen,gen):vec           mkvec2($1, $2)
 (gen,gen,gen):vec       mkvec3($1, $2, $3)
 (gen,gen,gen,gen):vec   mkvec4($1, $2, $3, $4)
 (gen,...):vec           mkvecn($#, $2)

Function: _type_preorder
Class: gp2c_internal
Help: List of chains of type preorder
Description: 
 (empty, void, bool, small, int, mp, gen)
 (empty, real, mp)
 (empty, bptr, small)
 (empty, bool, lg, small)
 (empty, bool, small_int, small)
 (empty, void, negbool, bool)
 (empty, typ, str, genstr,gen)
 (empty, vecsmall, gen)
 (empty, vec, gen)
 (empty, list, gen)
 (empty, bnr, bnf, nf, vec)
 (empty, bnr, bnf, clgp, vec)
 (empty, bell, ell, vec)
 (empty, prid, vec)
 (empty, gal, vec)
 (empty, var, pol, gen)

Function: _typedef
Class: gp2c_internal
Description: 
 (empty)        void
 (void)         void
 (negbool)      long
 (bool)         long
 (small_int)    int
 (small)        long
 (int)          GEN
 (real)         GEN
 (mp)           GEN
 (lg)           long
 (vecsmall)     GEN
 (vec)          GEN
 (list)         GEN
 (var)          long
 (pol)          GEN
 (gen)          GEN
 (genstr)       GEN
 (str)          char*
 (bptr)         byteptr
 (func_GG)      func_GG
 (pari_sp)      pari_sp
 (typ)          long
 (nf)           GEN
 (bnf)          GEN
 (bnr)          GEN
 (ell)          GEN
 (bell)         GEN
 (clgp)         GEN
 (prid)         GEN
 (gal)          GEN

Function: _||_
Class: symbolic_operators
Description: 
 (bool, bool):bool:parens               $(1) || $(2)

Function: _~
Class: symbolic_operators
C-Name: gtrans
Prototype: G
Description: 
 (vec):vec			gtrans($1)
 (gen):gen			gtrans($1)

Function: abs
Class: basic
Section: transcendental
C-Name: gabs
Prototype: Gp
Help: abs(x): absolute value (or modulus) of x
Description: 
 (small):small	labs($1)
 (int):int	mpabs($1)
 (real):real	mpabs($1)
 (mp):mp	mpabs($1)
 (gen):gen:prec	gabs($1, prec)

Function: acos
Class: basic
Section: transcendental
C-Name: gacos
Prototype: Gp
Help: acos(x): inverse cosine of x

Function: acosh
Class: basic
Section: transcendental
C-Name: gach
Prototype: Gp
Help: acosh(x): inverse hyperbolic cosine of x

Function: addhelp
Class: basic
Section: programming
C-Name: addhelp
Prototype: vSs
Help: addhelp(symbol,"message"): add/change help message for a symbol

Function: addprimes
Class: basic
Section: number_theoretical
C-Name: addprimes
Prototype: DG
Help: addprimes({x=[]}): add primes in the vector x to the prime table to
 be used in trial division. x may
 also be a single integer. Composite "primes" are allowed,
 and in that case you may later get a message "impossible inverse", which
 will give you some factors. List the current extra primes if x is omitted. If
 some primes are added which intersect non trivially the existing table entries,
 suitable updating is done

Function: agm
Class: basic
Section: transcendental
C-Name: agm
Prototype: GGp
Help: agm(x,y): arithmetic-geometric mean of x and y

Function: algdep
Class: basic
Section: linear_algebra
C-Name: algdep0
Prototype: GLD0,L,p
Help: algdep(x,n,{flag=0}): algebraic relations up to degree n of x, using
 lindep([1,x,...,x^(n-1)], flag).

Function: alias
Class: basic
Section: programming
C-Name: alias0
Prototype: vrr
Help: alias("new","old"): new is now an alias for old

Function: allocatemem
Class: basic
Section: programming
C-Name: allocatemem0
Prototype: vD0,L,
Help: allocatemem({s=0}): allocates a new stack of s bytes. doubles the
 stack if s is omitted

Function: arg
Class: basic
Section: transcendental
C-Name: garg
Prototype: Gp
Help: arg(x): argument of x,such that -pi<arg(x)<=pi

Function: asin
Class: basic
Section: transcendental
C-Name: gasin
Prototype: Gp
Help: asin(x): inverse sine of x

Function: asinh
Class: basic
Section: transcendental
C-Name: gash
Prototype: Gp
Help: asinh(x): inverse hyperbolic sine of x

Function: atan
Class: basic
Section: transcendental
C-Name: gatan
Prototype: Gp
Help: atan(x): inverse tangent of x

Function: atanh
Class: basic
Section: transcendental
C-Name: gath
Prototype: Gp
Help: atanh(x): inverse hyperbolic tangent of x

Function: bernfrac
Class: basic
Section: transcendental
C-Name: bernfrac
Prototype: L
Help: bernfrac(x): Bernoulli number B_x, as a rational number

Function: bernreal
Class: basic
Section: transcendental
C-Name: bernreal
Prototype: Lp
Help: bernreal(x): Bernoulli number B_x, as a real number with the current
 precision

Function: bernvec
Class: basic
Section: transcendental
C-Name: bernvec
Prototype: L
Help: bernvec(x): Vector of rational Bernoulli numbers B_0, B_2,...up to
 B_(2x)

Function: besselh1
Class: basic
Section: transcendental
C-Name: hbessel1
Prototype: GGp
Help: besselh1(nu,x): H^1-bessel function of index nu and argument x

Function: besselh2
Class: basic
Section: transcendental
C-Name: hbessel2
Prototype: GGp
Help: besselh2(nu,x): H^2-bessel function of index nu and argument x

Function: besseli
Class: basic
Section: transcendental
C-Name: ibessel
Prototype: GGp
Help: besseli(nu,x): I-bessel function of index nu and argument x

Function: besselj
Class: basic
Section: transcendental
C-Name: jbessel
Prototype: GGp
Help: besselj(nu,x): J-bessel function of index nu and argument x

Function: besseljh
Class: basic
Section: transcendental
C-Name: jbesselh
Prototype: GGp
Help: besseljh(n,x): J-bessel function of index n+1/2 and argument x, where
 n is a non-negative integer

Function: besselk
Class: basic
Section: transcendental
C-Name: kbessel0
Prototype: GGD0,L,p
Help: besselk(nu,x,{flag=0}): K-bessel function of index nu and argument x
 (x positive real of type real, nu of any scalar type). flag is optional, and
 may be set to 0: default; 1: use hyperu

Function: besseln
Class: basic
Section: transcendental
C-Name: nbessel
Prototype: GGp
Help: besseln(nu,x): N-bessel function of index nu and argument x

Function: bestappr
Class: basic
Section: number_theoretical
C-Name: bestappr0
Prototype: GGDG
Help: bestappr(x,k): gives the best approximation to the real x with
 denominator less or equal to k

Function: bezout
Class: basic
Section: number_theoretical
C-Name: vecbezout
Prototype: GG
Help: bezout(x,y): gives a 3-dimensional row vector [u,v,d] such that
 d=gcd(x,y) and u*x+v*y=d

Function: bezoutres
Class: basic
Section: number_theoretical
C-Name: vecbezoutres
Prototype: GG
Help: bezoutres(x,y): gives a 3-dimensional row vector [u,v,d] such that
 d=resultant(x,y) and u*x+v*y=d, where x and y are polynomials

Function: bigomega
Class: basic
Section: number_theoretical
C-Name: gbigomega
Prototype: G
Help: bigomega(x): number of prime divisors of x, counted with multiplicity
Description: 
 (int):small	bigomega($1)
 (gen):gen	gbigomega($1)

Function: binary
Class: basic
Section: conversions
C-Name: binaire
Prototype: G
Help: binary(x): gives the vector formed by the binary digits of x (x
 integer)

Function: binomial
Class: basic
Section: number_theoretical
C-Name: binomial
Prototype: GL
Help: binomial(x,y): binomial coefficient x*(x-1)...*(x-y+1)/y! defined for
 y in Z and any x

Function: bitand
Class: basic
Section: conversions
C-Name: gbitand
Prototype: GG
Help: bitand(x,y): bitwise "and" of two integers x and y. Negative numbers
 behave as if modulo big power of 2
Description: 
 (small, small):small:parens	$(1)&$(2)
 (gen, gen):int	gbitand($1, $2)

Function: bitneg
Class: basic
Section: conversions
C-Name: gbitneg
Prototype: GD-1,L,
Help: bitneg(x,{n=-1}): bitwise negation of an integers x truncated to n
 bits. n=-1 means represent infinite sequences of bit 1 as negative numbers.
 Negative numbers behave as if modulo big power of 2

Function: bitnegimply
Class: basic
Section: conversions
C-Name: gbitnegimply
Prototype: GG
Help: bitnegimply(x,y): bitwise "negated imply" of two integers x and y,
 in other words, x BITAND BITNEG(y). Negative numbers behave as if modulo big
 power of 2
Description: 
 (small, small):small:parens	$(1)&~$(2)
 (gen, gen):int	gbitnegimply($1, $2)

Function: bitor
Class: basic
Section: conversions
C-Name: gbitor
Prototype: GG
Help: bitor(x,y): bitwise "or" of two integers x and y. Negative numbers
 behave as if modulo big power of 2
Description: 
 (small, small):small:parens	$(1)|$(2)
 (gen, gen):int	gbitor($1, $2)

Function: bittest
Class: basic
Section: conversions
C-Name: gbittest
Prototype: GG
Help: bittest(x,n): gives bit number n (coefficient of 2^n) of the integer x.
 Negative numbers behave as if modulo big power of 2
Description: 
 (small, small):bool:parens     ($(1)>>$(2))&1
 (int, small):bool              bittest($1, $2)
 (gen, gen):gen                 gbittest($1, $2)

Function: bitxor
Class: basic
Section: conversions
C-Name: gbitxor
Prototype: GG
Help: bitxor(x,y): bitwise "exclusive or" of two integers x and y.
 Negative numbers behave as if modulo big power of 2
Description: 
 (small, small):small:parens	$(1)^$(2)
 (gen, gen):int	gbitxor($1, $2)

Function: bnfcertify
Class: basic
Section: number_fields
C-Name: certifybuchall
Prototype: lG
Help: bnfcertify(bnf): certify the correctness (i.e. remove the GRH) of the
 bnf data output by bnfclassunit or bnfinit

Function: bnfclassunit
Class: basic
Section: number_fields
C-Name: bnfclassunit0
Prototype: GD0,L,DGp
Help: bnfclassunit(P,{flag=0},{tech=[]}): compute the class group, regulator
 of the number field defined by the polynomial P, and also the fundamental
 units if they are not too large. flag and tech are both optional. flag can
 be any of 0: default, 1: insist on having fundamental units, 2: do not
 compute units. See manual for details about tech. P may also be a non-zero
 integer, and is then considered as the discriminant of a quadratic order

Function: bnfclgp
Class: basic
Section: number_fields
C-Name: classgrouponly
Prototype: GDGp
Help: bnfclgp(P,{tech=[]}): compute the class group of the number field
 defined by the polynomial P. If P is a non-zero integer, it is interpreted
 as a quadratic discriminant. See manual for details about tech

Function: bnfdecodemodule
Class: basic
Section: number_fields
C-Name: decodemodule
Prototype: GG
Help: bnfdecodemodule(nf,fa): given a coded module fa as in bnrdisclist,
 gives the true module

Function: bnfinit
Class: basic
Section: number_fields
C-Name: bnfinit0
Prototype: GD0,L,DGp
Help: bnfinit(P,{flag=0},{tech=[]}): compute the necessary data for future
 use in ideal and unit group computations, including fundamental units if
 they are not too large. flag and tech are both optional. flag can be any of
 0: default, 1: insist on having fundamental units, 2: do not compute units,
 3: small bnfinit, which can be converted to a big one using bnfmake. See
 manual for details about tech
Description: 
 (gen):bnf:prec	bnfinit0($1, 0, NULL, prec)
 (gen, 0):bnf:prec	bnfinit0($1, 0, NULL, prec)
 (gen, 1):bnf:prec	bnfinit0($1, 1, NULL, prec)
 (gen, 2):bnf:prec	bnfinit0($1, 2, NULL, prec)
 (gen, 3):bnf:prec	bnfinit0($1, 3, NULL, prec)
 (gen, ?small, ?gen):bnf:prec	bnfinit0($1, $2, $3, prec)

Function: bnfisintnorm
Class: basic
Section: number_fields
C-Name: bnfisintnorm
Prototype: GG
Help: bnfisintnorm(bnf,x): compute a complete system of solutions (modulo
 units of positive norm) of the absolute norm equation N(a)=x, where a
 belongs to the maximal order of big number field bnf (if bnf is not
 certified, this depends on GRH)

Function: bnfisnorm
Class: basic
Section: number_fields
C-Name: bnfisnorm
Prototype: GGD1,L,p
Help: bnfisnorm(bnf,x,{flag=1}): Tries to tell whether x (in Q) is the norm
 of some fractional y (in bnf). Returns a vector [a,b] where x=Norm(a)*b.
 Looks for a solution which is a S-unit, with S a certain list of primes (in
 bnf) containing (among others) all primes dividing x. If bnf is known to be
 Galois, set flag=0 (in this case, x is a norm iff b=1). If flag is non zero
 the program adds to S all the primes : dividing flag if flag<0, or less than
 flag if flag>0. The answer is guaranteed (i.e x norm iff b=1) under GRH, if
 S contains all primes less than 12.log(disc(Bnf))^2, where Bnf is the Galois
 closure of bnf

Function: bnfisprincipal
Class: basic
Section: number_fields
C-Name: isprincipalall
Prototype: GGD1,L,
Help: bnfisprincipal(bnf,x,{flag=1}): bnf being output by bnfinit (with
 flag<=2), gives [v,alpha], where v is the vector of exponents on
 the class group generators and alpha is the generator of the resulting
 principal ideal. In particular x is principal if and only if v is the zero
 vector. flag is optional, whose meaning is: 0: output only v; 1: default; 2:
 output only v, precision being doubled until the result is obtained; 3: as 2
 but output generators

Function: bnfissunit
Class: basic
Section: number_fields
C-Name: bnfissunit
Prototype: GGG
Help: bnfissunit(bnf,sfu,x): bnf being output by bnfinit (with flag<=2), sfu
 by bnfsunit, gives the column vector of exponents of x on the fundamental
 S-units and the roots of unity if x is a unit, the empty vector otherwise

Function: bnfisunit
Class: basic
Section: number_fields
C-Name: isunit
Prototype: GG
Help: bnfisunit(bnf,x): bnf being output by bnfinit (with flag<=2), gives
 the column vector of exponents of x on the fundamental units and the roots
 of unity if x is a unit, the empty vector otherwise

Function: bnfmake
Class: basic
Section: number_fields
C-Name: bnfmake
Prototype: Gp
Help: bnfmake(sbnf): transforms small sbnf as output by bnfinit with flag=3
 into a true big bnf

Function: bnfnarrow
Class: basic
Section: number_fields
C-Name: buchnarrow
Prototype: G
Help: bnfnarrow(bnf): given a big number field as output by bnfinit, gives
 as a 3-component vector the structure of the narrow class group

Function: bnfreg
Class: basic
Section: number_fields
C-Name: regulator
Prototype: GDGp
Help: bnfreg(P,{tech=[]}): compute the regulator of the number field defined
 by the polynomial P. If P is a non-zero integer, it is interpreted as a
 quadratic discriminant. See manual for details about tech

Function: bnfsignunit
Class: basic
Section: number_fields
C-Name: signunits
Prototype: G
Help: bnfsignunit(bnf): matrix of signs of the real embeddings of the system
 of fundamental units found by bnfinit

Function: bnfsunit
Class: basic
Section: number_fields
C-Name: bnfsunit
Prototype: GGp
Help: bnfsunit(bnf,S): compute the fundamental S-units of the number field
 bnf output by bnfinit, S being a list of prime ideals. res[1] contains the
 S-units, res[5] the S-classgroup. See manual for details

Function: bnfunit
Class: basic
Section: number_fields
C-Name: buchfu
Prototype: G
Help: bnfunit(bnf): compute the fundamental units of the number field bnf
 output by bnfinit when they have not yet been computed (i.e. with flag=2)

Function: bnrL1
Class: basic
Section: number_fields
C-Name: bnrL1
Prototype: GDGD0,L,p
Help: bnrL1(bnr, {subgroup}, {flag=0}): bnr being output by bnrinit(,,1) and
 subgroup being a square matrix defining a congruence subgroup of bnr (the
 trivial subgroup if omitted), for each character of bnr trivial on this
 subgroup, compute L(1, chi) (or equivalently the first non-zero term c(chi)
 of the expansion at s = 0). The binary digits of flag mean 1: if 0 then
 compute the term c(chi) and return [r(chi), c(chi)] where r(chi) is the
 order of L(s, chi) at s = 0, or if 1 then compute the value at s = 1 (and in
 this case, only for non-trivial characters), 2: if 0 then compute the value
 of the primitive L-function associated to chi, if 1 then compute the value
 of the L-function L_S(s, chi) where S is the set of places dividing the
 modulus of bnr (and the infinite places), 3: return also the characters

Function: bnrclass
Class: basic
Section: number_fields
C-Name: bnrclass0
Prototype: GGD0,L,
Help: bnrclass(bnf,ideal,{flag=0}): given a big number field as output by
 bnfinit (only) and an ideal or a 2-component row vector formed by an ideal
 and a list of R1 zeros or ones representing a module, finds the ray class
 group structure corresponding to this module. flag is optional, and can be
 0: default, 1: compute data necessary for working in the ray class group,
 for example with functions such as bnrisprincipal or bnrdisc, without
 computing the generators of the ray class group, or 2: with the generators.
 When flag=1 or 2, the fifth component is the ray class group structure
 obtained when flag=0

Function: bnrclassno
Class: basic
Section: number_fields
C-Name: bnrclassno
Prototype: GG
Help: bnrclassno(bnf,x): ray class number of the module x for the big number
 field bnf. Faster than bnrclass if only the ray class number is wanted

Function: bnrclassnolist
Class: basic
Section: number_fields
C-Name: bnrclassnolist
Prototype: GG
Help: bnrclassnolist(bnf,list): if list is as output by ideallist or
 similar, gives list of corresponding ray class numbers

Function: bnrconductor
Class: basic
Section: number_fields
C-Name: bnrconductor
Prototype: GDGDGDG
Help: bnrconductor(a1,{a2},{a3},{flag=0}): conductor f of the subfield of
 the ray class field given by a1,a2,a3 (see bnrdisc). flag is optional and
 can be 0: default, 1: returns [f, Cl_f, H], H subgroup of the ray class
 group modulo f defining the extension, 2: returns [f, bnr(f), H]

Function: bnrconductorofchar
Class: basic
Section: number_fields
C-Name: bnrconductorofchar
Prototype: GG
Help: bnrconductorofchar(bnr,chi): conductor of the character chi on the ray
 class group bnr

Function: bnrdisc
Class: basic
Section: number_fields
C-Name: bnrdisc0
Prototype: GDGDGD0,L,
Help: bnrdisc(a1,{a2},{a3},{flag=0}): absolute or relative [N,R1,discf] of
 the field defined by a1,a2,a3. [a1,{a2},{a3}] is of type [bnr],
 [bnr,subgroup], [bnf, module] or [bnf,module,subgroup], where bnf is as
 output by bnfclassunit (with flag<=2), bnr by bnrclass (with flag>0), and
 subgroup is the HNF matrix of a subgroup of the corresponding ray class
 group (if omitted, the trivial subgroup). flag is optional whose binary
 digits mean 1: give relative data; 2: return 0 if module is not the
 conductor

Function: bnrdisclist
Class: basic
Section: number_fields
C-Name: bnrdisclist0
Prototype: GGDG
Help: bnrdisclist(bnf,bound,{arch}): gives list of discriminants of
 ray class fields of all conductors up to norm bound, in a long vector
 The ramified Archimedean places are given by arch; all possible values are
 taken if arch is omitted. Supports the alternative syntax
 bnrdisclist(bnf,list), where list is as output by ideallist or ideallistarch
 (with units)

Function: bnrinit
Class: basic
Section: number_fields
C-Name: bnrinit0
Prototype: GGD0,L,
Help: bnrinit(bnf,ideal,{flag=0}): given a big number field as output by
 bnfinit (only) and an ideal or a 2-component row vector formed by an ideal
 and a list of R1 zeros or ones representing a module, initializes data
 linked to the ray class group structure corresponding to this module. flag
 is optional, and can be 0: default (same as bnrclass with flag = 1), 1:
 compute also the generators (same as bnrclass with flag = 2). The fifth
 component is the ray class group structure
Description: 
 (gen,gen,?small):bnr       bnrinit0($1, $2, $3)

Function: bnrisconductor
Class: basic
Section: number_fields
C-Name: bnrisconductor
Prototype: lGDGDG
Help: bnrisconductor(a1,{a2},{a3}): returns 1 if the modulus is the
 conductor of the subfield of the ray class field given by a1,a2,a3 (see
 bnrdisc), and 0 otherwise. Slightly faster than bnrconductor if this is the
 only desired result

Function: bnrisprincipal
Class: basic
Section: number_fields
C-Name: bnrisprincipal
Prototype: GGD1,L,
Help: bnrisprincipal(bnr,x,{flag=1}): bnr being output by bnrinit, gives
 [v,alpha], where v is the vector of exponents on the class group
 generators and alpha is the generator of the resulting principal ideal. In
 particular x is principal if and only if v is the zero vector. If (optional)
 flag is set to 0, output only v

Function: bnrrootnumber
Class: basic
Section: number_fields
C-Name: bnrrootnumber
Prototype: GGD0,L,p
Help: bnrrootnumber(bnr,chi,{flag=0}); returns the so-called Artin Root
 Number, i.e. the constant W appearing in the functional equation of the
 Hecke L-function associated to chi. Set flag = 1 if the character is known
 to be primitive

Function: bnrstark
Class: basic
Section: number_fields
C-Name: bnrstark
Prototype: GDGp
Help: bnrstark(bnr,{subgroup}): bnr being as output by
 bnrinit(,,1), finds a relative equation for the class field corresponding to
 the module in bnr and the given congruence subgroup (the trivial subgroup if
 omitted) using Stark's units. The ground field and the class field must be
 totally real.

Function: break
Class: basic
Section: programming
C-Name: break0
Prototype: D1,L,
Help: break({n=1}): interrupt execution of current instruction sequence, and
 exit from the n innermost enclosing loops

Function: ceil
Class: basic
Section: conversions
C-Name: gceil
Prototype: G
Help: ceil(x): ceiling of x=smallest integer>=x
Description: 
 (small):small:parens   $1
 (int):int:copy:parens  $1
 (real):int             ceilr($1)
 (mp):int               mpceil($1)
 (gen):gen              gceil($1)

Function: centerlift
Class: basic
Section: conversions
C-Name: centerlift0
Prototype: GDn
Help: centerlift(x,{v}): centered lift of x. Same as lift except for
 integermods
Description: 
 (pol):pol	centerlift($1)
 (vec):vec	centerlift($1)
 (gen):gen	centerlift($1)
 (pol, var):pol	centerlift0($1, $2)
 (vec, var):vec	centerlift0($1, $2)
 (gen, var):gen	centerlift0($1, $2)

Function: changevar
Class: basic
Section: conversions
C-Name: changevar
Prototype: GG
Help: changevar(x,y): change variables of x according to the vector y

Function: charpoly
Class: basic
Section: linear_algebra
C-Name: charpoly0
Prototype: GDnD0,L,
Help: charpoly(A,{v=x},{flag=0}): det(v*Id-A)=characteristic polynomial of
 the matrix or polmod A. flag is optional and may be set to 1 (use
 Lagrange interpolation) or 2 (use Hessenberg form), 0 being the default

Function: chinese
Class: basic
Section: number_theoretical
C-Name: chinese
Prototype: GDG
Help: chinese(x,{y}): x,y being both intmods (or polmods) computes z in the
 same residue classes as x and y
Description: 
 (gen):gen      chinese1($1)
 (gen, gen):gen chinese($1, $2)

Function: clone
Class: gp2c
Description: 
 (small):small:parens		$1
 (int):int			gclone($1)
 (real):real			gclone($1)
 (mp):mp			gclone($1)
 (vecsmall):vecsmall		gclone($1)
 (vec):vec			gclone($1)
 (pol):pol			gclone($1)
 (gen):gen			gclone($1)

Function: component
Class: basic
Section: conversions
C-Name: compo
Prototype: GL
Help: component(x,s): the s'th component of the internal representation of
 x. For vectors or matrices, it is simpler to use x[]. For list objects such
 as nf, bnf, bnr or ell, it is much easier to use member functions starting
 with "."

Function: concat
Class: basic
Section: linear_algebra
C-Name: concat
Prototype: GDG
Help: concat(x,{y}): concatenation of x and y, which can be scalars, vectors
 or matrices, or lists (in this last case, both x and y have to be lists). If
 y is omitted, x has to be a list or row vector and its elements are
 concatenated
Description: 
 (mp,mp):vec           concat($1, $2)
 (vec,mp):vec          concat($1, $2)
 (mp,vec):vec          concat($1, $2)
 (vec,vec):vec         concat($1, $2)
 (genstr,gen):genstr   concat($1, $2)
 (gen,genstr):genstr   concat($1, $2)
 (gen,?gen):gen        concat($1, $2)

Function: conj
Class: basic
Section: conversions
C-Name: gconj
Prototype: G
Help: conj(x): the algebraic conjugate of x

Function: conjvec
Class: basic
Section: conversions
C-Name: conjvec
Prototype: Gp
Help: conjvec(x): conjugate vector of the algebraic number x

Function: content
Class: basic
Section: number_theoretical
C-Name: content
Prototype: G
Help: content(x): gcd of all the components of x, when this makes sense

Function: contfrac
Class: basic
Section: number_theoretical
C-Name: contfrac0
Prototype: GDGD0,L,
Help: contfrac(x,{b},{lmax}): continued fraction expansion of x (x
 rational,real or rational function). b and lmax are both optional, where b
 is the vector of numerators of the continued fraction, and lmax is a bound
 for the number of terms in the continued fraction expansion

Function: contfracpnqn
Class: basic
Section: number_theoretical
C-Name: pnqn
Prototype: G
Help: contfracpnqn(x): [p_n,p_{n-1}; q_n,q_{n-1}] corresponding to the
 continued fraction x

Function: copy
Class: gp2c
Description: 
 (small):small:parens		$1
 (int):int			icopy($1)
 (real):real			gcopy($1)
 (mp):mp			gcopy($1)
 (vecsmall):vecsmall		gcopy($1)
 (vec):vec			gcopy($1)
 (pol):pol			gcopy($1)
 (gen):gen			gcopy($1)

Function: core
Class: basic
Section: number_theoretical
C-Name: core0
Prototype: GD0,L,
Help: core(n,{flag=0}): unique (positive of negative) squarefree integer d
 dividing n such that n/d is a square. If (optional) flag is non-null, output
 the two-component row vector [d,f], where d is the unique squarefree integer
 dividing n such that n/d=f^2 is a square

Function: coredisc
Class: basic
Section: number_theoretical
C-Name: coredisc0
Prototype: GD0,L,
Help: coredisc(n,{flag=0}): discriminant of the quadratic field Q(sqrt(n)).
 If (optional) flag is non-null, output a two-component row vector [d,f],
 where d is the discriminant of the quadratic field Q(sqrt(n)) and n=df^2. f
 may be a half integer

Function: cos
Class: basic
Section: transcendental
C-Name: gcos
Prototype: Gp
Help: cos(x): cosine of x

Function: cosh
Class: basic
Section: transcendental
C-Name: gch
Prototype: Gp
Help: cosh(x): hyperbolic cosine of x

Function: cotan
Class: basic
Section: transcendental
C-Name: gcotan
Prototype: Gp
Help: cotan(x): cotangent of x

Function: default
Class: basic
Section: programming
C-Name: default0
Prototype: D"",r,D"",s,D0,L,
Help: default({opt},{v}): returns the current value of the current
 default opt. If v is present, set opt to v first. If no argument is
 given, print a list of all defaults as well as their values.
Description: 
 ("realprecision"):small:prec              getrealprecision()
 ("realprecision",small):small:prec        setrealprecision($2, &prec)
 ("seriesprecision"):small                 precdl
 ("seriesprecision",small):small:parens    precdl = $2
 ("debug"):small                           DEBUGLEVEL
 ("debug",small):small:parens              DEBUGLEVEL = $2
 ("debugmem"):small                        DEBUGMEM
 ("debugmem",small):small:parens           DEBUGMEM = $2
 ("debugfiles"):small                      DEBUGFILES
 ("debugfiles",small):small:parens         DEBUGFILES = $2

Function: denominator
Class: basic
Section: conversions
C-Name: denom
Prototype: G
Help: denominator(x): denominator of x (or lowest common denominator in case
 of an array)

Function: deriv
Class: basic
Section: polynomials
C-Name: deriv
Prototype: GDn
Help: deriv(x,{y}): derivative of x with respect to the main variable of y,
 or to the main variable of x if y is omitted

Function: dilog
Class: basic
Section: transcendental
C-Name: dilog
Prototype: Gp
Help: dilog(x): dilogarithm of x

Function: dirdiv
Class: basic
Section: number_theoretical
C-Name: dirdiv
Prototype: GG
Help: dirdiv(x,y): division of the Dirichlet series x by the Dirichlet
 series y

Function: direuler
Class: basic
Section: number_theoretical
C-Name: direuler0
Prototype: V=GGEDG
Help: direuler(p=a,b,expr,{c}): Dirichlet Euler product of expression expr
 from p=a to p=b, limited to b terms. Expr should be a polynomial or rational
 function in p and X, and X is understood to mean p^(-s). If c is present,
 output only the first c terms

Function: dirmul
Class: basic
Section: number_theoretical
C-Name: dirmul
Prototype: GG
Help: dirmul(x,y): multiplication of the Dirichlet series x by the Dirichlet
 series y

Function: dirzetak
Class: basic
Section: number_fields
C-Name: dirzetak
Prototype: GG
Help: dirzetak(nf,b): Dirichlet series of the Dedekind zeta function of the
 number field nf up to the bound b-1

Function: divisors
Class: basic
Section: number_theoretical
C-Name: divisors
Prototype: G
Help: divisors(x): gives a vector formed by the divisors of x in increasing
 order
Description: 
 (gen):vec	divisors($1)

Function: divrem
Class: basic
Section: operators
C-Name: divrem
Prototype: GGDn
Help: divrem(x,y,{v}): euclidean division of x by y giving as a
 2-dimensional column vector the quotient and the remainder, with respect to
 v (to main variable if v is omitted)

Function: eint1
Class: basic
Section: transcendental
C-Name: veceint1
Prototype: GDGp
Help: eint1(x,{n}): exponential integral E1(x). If n is present, computes
 the vector of the first n values of the exponential integral E1(n.x) (x > 0)

Function: elladd
Class: basic
Section: elliptic_curves
C-Name: addell
Prototype: GGG
Help: elladd(e,z1,z2): sum of the points z1 and z2 on elliptic curve e

Function: ellak
Class: basic
Section: elliptic_curves
C-Name: akell
Prototype: GG
Help: ellak(e,n): computes the n-th Fourier coefficient of the L-function of
 the elliptic curve e

Function: ellan
Class: basic
Section: elliptic_curves
C-Name: anell
Prototype: GL
Help: ellan(e,n): computes the first n Fourier coefficients of the
 L-function of the elliptic curve e (n<2^24 on a 32-bit machine)

Function: ellap
Class: basic
Section: elliptic_curves
C-Name: ellap0
Prototype: GGD0,L,
Help: ellap(e,p,{flag=0}): computes a_p for the elliptic curve e using
 Shanks-Mestre's method. flag is optional and can be set to 0 (default) or 1
 (use Jacobi symbols)

Function: ellbil
Class: basic
Section: elliptic_curves
C-Name: bilhell
Prototype: GGGp
Help: ellbil(e,z1,z2): canonical bilinear form for the points z1,z2 on the
 elliptic curve e. Either z1 or z2 can also be a vector/matrix of points

Function: ellchangecurve
Class: basic
Section: elliptic_curves
C-Name: coordch
Prototype: GG
Help: ellchangecurve(x,y): change data on elliptic curve according to
 y=[u,r,s,t]
Description: 
 (gen, gen):ell	coordch($1, $2)

Function: ellchangepoint
Class: basic
Section: elliptic_curves
C-Name: pointch
Prototype: GG
Help: ellchangepoint(x,y): change data on point or vector of points x on an
 elliptic curve according to y=[u,r,s,t]

Function: ellconvertname
Class: basic
Section: elliptic_curves
C-Name: ellconvertname
Prototype: G
Help: ellconvertname(name): convert an elliptic curve name (as found in
 the elldata database) from a string to a triplet [conductor, isogeny class,
 index]. It will also convert a triplet back to a curve name.

Function: elleisnum
Class: basic
Section: elliptic_curves
C-Name: elleisnum
Prototype: GLD0,L,p
Help: elleisnum(om,k,{flag=0}): om=[om1,om2] being a 2-component vector
 giving a basis of a lattice L and k an even positive integer, computes the
 numerical value of the Eisenstein series of weight k. When flag is non-zero
 and k=4 or 6, this gives g2 or g3 with the correct normalization

Function: elleta
Class: basic
Section: elliptic_curves
C-Name: elleta
Prototype: Gp
Help: elleta(om): om=[om1,om2], returns the two-component row vector
 [eta1,eta2] of quasi-periods associated to [om1,om2]

Function: ellgenerators
Class: basic
Section: elliptic_curves
C-Name: ellgenerators
Prototype: G
Help: ellgenerators(E): if E is an elliptic curve as output by ellinit(),
 return the generators of the Mordell-Weil group associated to the curve.
 This function depends on the curve being referenced in the elldata database.

Function: ellglobalred
Class: basic
Section: elliptic_curves
C-Name: ellglobalred
Prototype: G
Help: ellglobalred(e): e being an elliptic curve, returns [N,[u,r,s,t],c],
 where N is the conductor of e, [u,r,s,t] leads to the standard model for e,
 and c is the product of the local Tamagawa numbers c_p
Description: 
 (gen):gen	ellglobalred($1)

Function: ellheight
Class: basic
Section: elliptic_curves
C-Name: ellheight0
Prototype: GGD2,L,p
Help: ellheight(e,x,{flag=2}): canonical height of point x on elliptic curve
 E defined by the vector e. flag is optional and selects the algorithm used
 to compute the archimedean local height. Its meaning is 0: use
 theta-functions, 1: use Tate's method, 2: use Mestre's AGM

Function: ellheightmatrix
Class: basic
Section: elliptic_curves
C-Name: mathell
Prototype: GGp
Help: ellheightmatrix(e,x): gives the height matrix for vector of points x
 on elliptic curve e using theta functions

Function: ellidentify
Class: basic
Section: elliptic_curves
C-Name: ellidentify
Prototype: G
Help: ellidentify(E): look up the elliptic curve E in the elldata database and
 return [[N, M, ...], C] where N is the name of the curve in J. E. Cremona
 database, M the minimal model and C the coordinates change (see
 ellchangecurve).

Function: ellinit
Class: basic
Section: elliptic_curves
C-Name: ellinit0
Prototype: GD0,L,p
Help: ellinit(x,{flag=0}): x being the vector [a1,a2,a3,a4,a6] defining the
 curve Y^2 + a1.XY + a3.Y = X^3 + a2.X^2 + a4.X + a6, gives the vector:
 [a1,a2,a3,a4,a6,b2,b4,b6,b8,c4,c6,disc,j,[e1,e2,e3],w1,w2,eta1,eta2,area].
 If the curve is defined over a p-adic field, the last six components are
 replaced by root,u^2,u,q,w,0. If optional flag is 1, omit them altogether.
 x can also be a string, in this case the coefficients of the curve with
 matching name are looked in the elldata database if available.
Description: 
 (gen, ?0):bell:prec    initell($1, prec)
 (gen, 1):ell           smallinitell($1)
 (gen, small):ell:prec  ellinit0($1, $2, prec)

Function: ellisoncurve
Class: basic
Section: elliptic_curves
C-Name: ellisoncurve
Prototype: GG
Help: ellisoncurve(e,x): true(1) if x is on elliptic curve e, false(0) if
 not

Function: ellj
Class: basic
Section: elliptic_curves
C-Name: jell
Prototype: Gp
Help: ellj(x): elliptic j invariant of x

Function: elllocalred
Class: basic
Section: elliptic_curves
C-Name: elllocalred
Prototype: GG
Help: elllocalred(e,p): e being an elliptic curve, returns
 [f,kod,[u,r,s,t],c], where f is the conductor's exponent, kod is the Kodaira
 type for e at p, [u,r,s,t] is the change of variable needed to make e
 minimal at p, and c is the local Tamagawa number c_p

Function: elllseries
Class: basic
Section: elliptic_curves
C-Name: elllseries
Prototype: GGDGp
Help: elllseries(e,s,{A=1}): L-series at s of the elliptic curve e, where A
 a cut-off point close to 1

Function: ellminimalmodel
Class: basic
Section: elliptic_curves
C-Name: ellminimalmodel
Prototype: GD&
Help: ellminimalmodel(e,{&v}): return the standard minimal integral model of
 the rational elliptic curve e. Sets v to the corresponding change of
 variables

Function: ellorder
Class: basic
Section: elliptic_curves
C-Name: orderell
Prototype: GG
Help: ellorder(e,p): order of the point p on the elliptic curve e over Q, 0
 if non-torsion

Function: ellordinate
Class: basic
Section: elliptic_curves
C-Name: ordell
Prototype: GGp
Help: ellordinate(e,x): y-coordinates corresponding to x-ordinate x on
 elliptic curve e

Function: ellpointtoz
Class: basic
Section: elliptic_curves
C-Name: zell
Prototype: GGp
Help: ellpointtoz(e,P): lattice point z corresponding to the point P on the
 elliptic curve e

Function: ellpow
Class: basic
Section: elliptic_curves
C-Name: powell
Prototype: GGG
Help: ellpow(e,x,n): n times the point x on elliptic curve e (n in Z)

Function: ellrootno
Class: basic
Section: elliptic_curves
C-Name: ellrootno
Prototype: lGDG
Help: ellrootno(e,{p=1}): root number for the L-function of the elliptic
 curve e. p can be 1 (default), global root number, or a prime p (including
 0) for the local root number at p

Function: ellsearch
Class: basic
Section: elliptic_curves
C-Name: ellsearch
Prototype: G
Help: ellsearch(N): if N is an integer, it is taken as a conductor else if N is
 a string, it can be a curve name ("11a1"), a isogeny class ("11a") or a
 conductor ("11"). Return all curves in the elldata database that match the 
 property.

Function: ellsigma
Class: basic
Section: elliptic_curves
C-Name: ellsigma
Prototype: GGD0,L,p
Help: ellsigma(om,z,{flag=0}): om=[om1,om2], value of the Weierstrass sigma
 function of the lattice generated by om at z if flag = 0 (default). If flag
 = 1, arbitrary determination of the logarithm of sigma. If flag = 2 or 3,
 same but using the product expansion instead of theta series

Function: ellsub
Class: basic
Section: elliptic_curves
C-Name: subell
Prototype: GGG
Help: ellsub(e,z1,z2): difference of the points z1 and z2 on elliptic curve
 e

Function: elltaniyama
Class: basic
Section: elliptic_curves
C-Name: elltaniyama
Prototype: GP
Help: elltaniyama(e): modular parametrization of elliptic curve e

Function: elltors
Class: basic
Section: elliptic_curves
C-Name: elltors0
Prototype: GD0,L,
Help: elltors(e,{flag=0}): torsion subgroup of elliptic curve e: order,
 structure, generators. If flag = 0, use Doud's algorithm; if flag = 1, use
 Lutz-Nagell

Function: ellwp
Class: basic
Section: elliptic_curves
C-Name: ellwp0
Prototype: GDGD0,L,pP
Help: ellwp(e,{z=x},{flag=0}): Complex value of Weierstrass P function at z
 on the lattice generated over Z by e=[om1,om2] (e as given by ellinit is
 also accepted). Optional flag means 0 (default), compute only P(z), 1
 compute [P(z),P'(z)], 2 consider om as an elliptic curve and compute P(z)
 for that curve (identical to ellztopoint in that case). If z is omitted or
 is a simple variable, return formal expansion in z

Function: ellzeta
Class: basic
Section: elliptic_curves
C-Name: ellzeta
Prototype: GGp
Help: ellzeta(om,z): om=[om1,om2], value of the Weierstrass zeta function of
 the lattice generated by om at z

Function: ellztopoint
Class: basic
Section: elliptic_curves
C-Name: pointell
Prototype: GGp
Help: ellztopoint(e,z): coordinates of point P on the curve e corresponding
 to the complex number z

Function: erfc
Class: basic
Section: transcendental
C-Name: gerfc
Prototype: Gp
Help: erfc(x): complementary error function

Function: error
Class: basic
Section: programming
C-Name: error0
Prototype: vs*
Help: error("msg"): abort script with error message msg
Description: 
 (?gen,...):void  pari_err(talker, "${2 format_string}"${2 format_args})

Function: eta
Class: basic
Section: transcendental
C-Name: eta0
Prototype: GD0,L,p
Help: eta(x,{flag=0}): if flag=0, eta function without the q^(1/24),
 otherwise eta of the complex number x in the upper half plane intelligently
 computed using SL(2,Z) transformations

Function: eulerphi
Class: basic
Section: number_theoretical
C-Name: gphi
Prototype: G
Help: eulerphi(x): Euler's totient function of x
Description: 
 (int):int	phi($1)
 (gen):gen	gphi($1)

Function: eval
Class: basic
Section: polynomials
C-Name: geval
Prototype: G
Help: eval(x): evaluation of x, replacing variables by their value

Function: exp
Class: basic
Section: transcendental
C-Name: gexp
Prototype: Gp
Help: exp(x): exponential of x
Description: 
 (real):real	mpexp($1)
 (mp):mp:prec	gexp($1, prec)
 (gen):gen:prec	gexp($1, prec)

Function: extern
Class: gp
Section: programming
C-Name: extern0
Prototype: s
Help: extern(cmd): execute shell command cmd, and feeds the result to GP (as
 if loading from file)

Function: factor
Class: basic
Section: number_theoretical
C-Name: factor0
Prototype: GD-1,L,
Help: factor(x,{lim}): factorization of x. lim is optional and can be set
 whenever x is of (possibly recursive) rational type. If lim is set return
 partial factorization, using primes up to lim (up to primelimit if lim=0)
Description: 
 (int, ?-1):gen        Z_factor($1)
 (gen, ?-1):gen        factor($1)
 (int, 0):gen          smallfact($1)
 (gen, small):gen      factor0($1, $2)

Function: factorback
Class: basic
Section: number_theoretical
C-Name: factorback0
Prototype: GDGDG
Help: factorback(f,{e},{nf}): given a factorisation f, gives the factored
 object back. If this is a prime ideal factorisation you must supply the
 corresponding number field as last argument. If e is present, f has to be a
 vector of the same length, and we return the product of the f[i]^e[i]

Function: factorcantor
Class: basic
Section: number_theoretical
C-Name: factcantor
Prototype: GG
Help: factorcantor(x,p): factorization mod p of the polynomial x using
 Cantor-Zassenhaus

Function: factorff
Class: basic
Section: number_theoretical
C-Name: factorff
Prototype: GGG
Help: factorff(x,p,a): factorization of the polynomial x in the finite field
 F_p[X]/a(X)F_p[X]

Function: factorial
Class: basic
Section: number_theoretical
C-Name: mpfactr
Prototype: Lp
Help: factorial(x): factorial of x (x C-integer), the result being given as
 a real number

Function: factorint
Class: basic
Section: number_theoretical
C-Name: factorint
Prototype: GD0,L,
Help: factorint(x,{flag=0}): factor the integer x. flag is optional, whose
 binary digits mean 1: avoid MPQS, 2: avoid first-stage ECM (may fall back on
 it later), 4: avoid Pollard-Brent Rho and Shanks SQUFOF, 8: skip final ECM
 (huge composites will be declared prime)

Function: factormod
Class: basic
Section: number_theoretical
C-Name: factormod0
Prototype: GGD0,L,
Help: factormod(x,p,{flag=0}): factorization mod p of the polynomial x using
 Berlekamp. flag is optional, and can be 0: default or 1: simple factormod,
 same except that only the degrees of the irreducible factors are given

Function: factornf
Class: basic
Section: number_fields
C-Name: polfnf
Prototype: GG
Help: factornf(x,t): factorization of the polynomial x over the number field
 defined by the polynomial t

Function: factorpadic
Class: basic
Section: polynomials
C-Name: factorpadic0
Prototype: GGLD0,L,
Help: factorpadic(x,p,r,{flag=0}): p-adic factorization of the polynomial x
 to precision r. flag is optional and may be set to 0 (use round 4) or 1 (use
 Buchmann-Lenstra)

Function: ffinit
Class: basic
Section: number_theoretical
C-Name: ffinit
Prototype: GLDn
Help: ffinit(p,n,{v=x}): monic irreducible polynomial of degree n over
 F_p[v]
Description: 
 (int, small, ?var):pol	ffinit($1, $2, $3)

Function: fibonacci
Class: basic
Section: number_theoretical
C-Name: fibo
Prototype: L
Help: fibonacci(x): fibonacci number of index x (x C-integer)

Function: floor
Class: basic
Section: conversions
C-Name: gfloor
Prototype: G
Help: floor(x): floor of x = largest integer<=x
Description: 
 (small):small:parens   $1
 (int):int:copy:parens  $1
 (real):int             floorr($1)
 (mp):int               mpfloor($1)
 (gen):gen              gfloor($1)

Function: for
Class: basic
Section: programming
C-Name: forpari
Prototype: vV=GGI
Help: for(X=a,b,seq): the sequence is evaluated, X going from a up to b

Function: fordiv
Class: basic
Section: programming
C-Name: fordiv
Prototype: vGVI
Help: fordiv(n,X,seq): the sequence is evaluated, X running over the
 divisors of n

Function: forell
Class: basic
Section: programming
C-Name: forell
Prototype: vVLLI
Help: forell(E,a,b,seq): execute seq for each elliptic curves E of conductor
 between a and b in the elldata database.

Function: forprime
Class: basic
Section: programming
C-Name: forprime
Prototype: vV=GGI
Help: forprime(X=a,b,seq): the sequence is evaluated, X running over the
 primes between a and b

Function: forstep
Class: basic
Section: programming
C-Name: forstep
Prototype: vV=GGGI
Help: forstep(X=a,b,s,seq): the sequence is evaluated, X going from a to b
 in steps of s (can be a vector of steps)

Function: forsubgroup
Class: basic
Section: programming
C-Name: forsubgroup
Prototype: vV=GDGI
Help: forsubgroup(H=G,{bound},seq): execute seq for each subgroup H of the
 abelian group G (in SNF form), whose index is bounded by bound. H is given
 as a left divisor of G in HNF form

Function: forvec
Class: basic
Section: programming
C-Name: forvec
Prototype: vV=GID0,L,
Help: forvec(x=v,seq,{flag=0}): v being a vector of two-component vectors of
 length n, the sequence is evaluated with x[i] going from v[i][1] to v[i][2]
 for i=n,..,1 if flag is zero or omitted. If flag = 1 (resp. flag = 2),
 restrict to increasing (resp. strictly increasing) sequences

Function: frac
Class: basic
Section: conversions
C-Name: gfrac
Prototype: G
Help: frac(x): fractional part of x = x-floor(x)

Function: galoisexport
Class: basic
Section: number_fields
C-Name: galoisexport
Prototype: GD0,L,
Help: galoisexport(gal,{flag}): gal being a galois field as output by
 galoisinit, output a string representing the underlying permutation group in
 GAP notation (default) or Magma notation (flag = 1)

Function: galoisfixedfield
Class: basic
Section: number_fields
C-Name: galoisfixedfield
Prototype: GGD0,L,Dn
Help: galoisfixedfield(gal,perm,{flag},{v=y}): gal being a galois field as
 output by galoisinit and perm an element of gal.group or a vector of such
 elements, return [P,x] such that P is a polynomial defining the fixed field
 of gal[1] by the subgroup generated by perm, and x is a root of P in gal
 expressed as a polmod in gal.pol. If flag is 1 return only P. If flag is 2
 return [P,x,F] where F is the factorization of gal.pol over the field
 defined by P, where the variable v stands for a root of P
Description: 
 (gen, gen, ?small, ?var):vec	galoisfixedfield($1, $2, $3, $4)

Function: galoisidentify
Class: basic
Section: number_fields
C-Name: galoisidentify
Prototype: G
Help: galoisidentify(gal): gal being a galois field as output by galoisinit,
 output the isomorphism class of the underlying abstract group as a
 two-components vector [o,i], where o is the group order, and i is the group
 index in the GAP4 small group library

Function: galoisinit
Class: basic
Section: number_fields
C-Name: galoisinit
Prototype: GDG
Help: galoisinit(pol,{den}): pol being a polynomial or a number field as
 output by nfinit defining a Galois extension of Q, compute the Galois group
 and all neccessary informations for computing fixed fields. den is optional
 and has the same meaning as in nfgaloisconj(,4)(see manual)
Description: 
 (gen, ?int):gal        galoisinit($1, $2)

Function: galoisisabelian
Class: basic
Section: number_fields
C-Name: galoisisabelian
Prototype: GD0,L,
Help: galoisisabelian(gal,{flag=0}): gal being as output by galoisinit,
 return 0 if gal is not abelian, the HNF matrix of gal over gal.gen if
 flag=0, 1 if flag is 1, and the SNF of gal is flag=2

Function: galoispermtopol
Class: basic
Section: number_fields
C-Name: galoispermtopol
Prototype: GG
Help: galoispermtopol(gal,perm): gal being a galois field as output by
 galoisinit and perm a element of gal.group, return the polynomial defining
 the corresponding Galois automorphism

Function: galoissubcyclo
Class: basic
Section: number_fields
C-Name: galoissubcyclo
Prototype: GDGD0,L,Dn
Help: galoissubcyclo(N,H,{fl=0},{v}):Compute a polynomial (in variable v)
 defining the subfield of Q(zeta_n) fixed by the subgroup H of (Z/nZ)*. N can
 be an integer n, znstar(n) or bnrinit(bnfinit(y),[n,[1]],1). H can be given
 by a generator, a set of generator given by a vector or a HNF matrix (see
 manual). If flag is 1, output only the conductor of the abelian extension.
 If flag is 2 output [pol,f] where pol is the polynomial and f the conductor.

Function: galoissubfields
Class: basic
Section: number_fields
C-Name: galoissubfields
Prototype: GD0,L,Dn
Help: galoissubfields(G,{flags=0},{v}):Output all the subfields of G. flags
 have the same meaning as for galoisfixedfield

Function: galoissubgroups
Class: basic
Section: number_fields
C-Name: galoissubgroups
Prototype: G
Help: galoissubgroups(G):Output all the subgroups of G

Function: gamma
Class: basic
Section: transcendental
C-Name: ggamma
Prototype: Gp
Help: gamma(x): gamma function at x

Function: gammah
Class: basic
Section: transcendental
C-Name: ggamd
Prototype: Gp
Help: gammah(x): gamma of x+1/2 (x integer)

Function: gcd
Class: basic
Section: number_theoretical
C-Name: gcd0
Prototype: GDGD0,L,
Help: gcd(x,{y}): greatest common divisor of x and y.
Description: 
 (small, small, ?0):small	cgcd($1, $2)
 (int, int, ?0):int	        gcdii($1, $2)
 (gen, gen, ?0):gen	        ggcd($1, $2)
 (gen, gen, 1):gen	        modulargcd($1, $2)
 (gen, gen, 2):gen	        srgcd($1, $2)
 (gen, ?gen, ?small):gen	gcd0($1, $2, $3)

Function: getheap
Class: basic
Section: programming
C-Name: getheap
Prototype: 
Help: getheap(): 2-component vector giving the current number of objects in
 the heap and the space they occupy

Function: getrand
Class: basic
Section: programming
C-Name: getrand
Prototype: l
Help: getrand(): current value of random number seed

Function: getstack
Class: basic
Section: programming
C-Name: getstack
Prototype: l
Help: getstack(): current value of stack pointer avma

Function: gettime
Class: basic
Section: programming
C-Name: gettime
Prototype: l
Help: gettime(): time (in milliseconds) since last call to gettime

Function: global
Class: basic
Section: programming
Help: global(x): declare x to be a global variable

Function: hilbert
Class: basic
Section: number_theoretical
C-Name: hil0
Prototype: lGGDG
Help: hilbert(x,y,{p}): Hilbert symbol at p of x,y.
Doc: \idx{Hilbert symbol} of $x$ and $y$ modulo the prime $p$, $p=0$ meaning
 the place at infinity (the result is undefined if $p\neq 0$ is not prime).
 
 It is possible to omit $p$, in which case we take $p = 0$ if both $x$
 and $y$ are rational, or one of them is a real number. And take $p = q$
 if one of $x$, $y$ is a \typ{INTMOD} modulo $q$ or a $q$-adic. (Incompatible
 types will raise an error.)

Function: hyperu
Class: basic
Section: transcendental
C-Name: hyperu
Prototype: GGGp
Help: hyperu(a,b,x): U-confluent hypergeometric function

Function: idealadd
Class: basic
Section: number_fields
C-Name: idealadd
Prototype: GGG
Help: idealadd(nf,x,y): sum of two ideals x and y in the number field
 defined by nf

Function: idealaddtoone
Class: basic
Section: number_fields
C-Name: idealaddtoone0
Prototype: GGDG
Help: idealaddtoone(nf,x,{y}): if y is omitted, when the sum of the ideals
 in the number field K defined by nf and given in the vector x is equal to
 Z_K, gives a vector of elements of the corresponding ideals who sum to 1.
 Otherwise, x and y are ideals, and if they sum up to 1, find one element in
 each of them such that the sum is 1

Function: idealappr
Class: basic
Section: number_fields
C-Name: idealappr0
Prototype: GGD0,L,
Help: idealappr(nf,x,{flag=0}): x being a fractional ideal, gives an element
 b such that v_p(b)=v_p(x) for all prime ideals p dividing x, and v_p(b)>=0
 for all other p. If (optional) flag is non-null x must be a prime ideal
 factorization with possibly zero exponents

Function: idealchinese
Class: basic
Section: number_fields
C-Name: idealchinese
Prototype: GGG
Help: idealchinese(nf,x,y): x being a prime ideal factorization and y a
 vector of elements, gives an element b such that v_p(b-y_p)>=v_p(x) for all
 prime ideals p dividing x, and v_p(b)>=0 for all other p

Function: idealcoprime
Class: basic
Section: number_fields
C-Name: idealcoprime
Prototype: GGG
Help: idealcoprime(nf,x,y): gives an element b in nf such that b. x is an
 integral ideal coprime to the integral ideal y

Function: idealdiv
Class: basic
Section: number_fields
C-Name: idealdiv0
Prototype: GGGD0,L,
Help: idealdiv(nf,x,y,{flag=0}): quotient x/y of two ideals x and y in HNF
 in the number field nf. If (optional) flag is non-null, the quotient is
 supposed to be an integral ideal (slightly faster)
Description: 
 (gen, gen, gen, ?0):gen	idealdiv($1, $2, $3)
 (gen, gen, gen, 1):gen	idealdivexact($1, $2, $3)
 (gen, gen, gen, #small):gen	$"invalid flag in idealdiv"
 (gen, gen, gen, small):gen	idealdiv0($1, $2, $3, $4)

Function: idealfactor
Class: basic
Section: number_fields
C-Name: idealfactor
Prototype: GG
Help: idealfactor(nf,x): factorization of the ideal x given in HNF into
 prime ideals in the number field nf

Function: idealhnf
Class: basic
Section: number_fields
C-Name: idealhnf0
Prototype: GGDG
Help: idealhnf(nf,a,{b}): hermite normal form of the ideal a in the number
 field nf, whatever form a may have. If called as idealhnf(nf,a,b), the ideal
 is given as aZ_K+bZ_K in the number field K defined by nf

Function: idealintersect
Class: basic
Section: number_fields
C-Name: idealintersect
Prototype: GGG
Help: idealintersect(nf,x,y): intersection of two ideals x and y in the
 number field defined by nf

Function: idealinv
Class: basic
Section: number_fields
C-Name: idealinv
Prototype: GG
Help: idealinv(nf,x,{flag=0}): inverse of the ideal x in the number field
 nf. If flag is omitted or set to 0, use the different. If flag is 1 do not
 use it
Description: 
 (gen, gen):gen	idealinv($1, $2)

Function: ideallist
Class: basic
Section: number_fields
C-Name: ideallist0
Prototype: GLD4,L,
Help: ideallist(nf,bound,{flag=4}): vector of vectors L of all idealstar of
 all ideals of norm<=bound. If (optional) flag is present, its binary digits
 are toggles meaning 1: give generators; 2: add units; 4: give only the
 ideals and not the bid.

Function: ideallistarch
Class: basic
Section: number_fields
C-Name: ideallistarch
Prototype: GGG
Help: ideallistarch(nf,list,arch): list is a vector of vectors of of bid's as
 output by ideallist. Return a vector of vectors with the same number of
 components as the original list. The leaves give information about
 moduli whose finite part is as in original list, in the same order, and
 archimedean part is now arch. The information contained is of the same kind
 as was present in the input.

Function: ideallog
Class: basic
Section: number_fields
C-Name: zideallog
Prototype: GGG
Help: ideallog(nf,x,bid): if bid is a big ideal, as given by
 idealstar(nf,I,1) or idealstar(nf,I,2), gives the vector of exponents on the
 generators bid[2][3] (even if these generators have not been computed)

Function: idealmin
Class: basic
Section: number_fields
C-Name: minideal
Prototype: GGDGp
Help: idealmin(nf,ix,{vdir}): minimum of the ideal ix in the direction vdir
 in the number field nf

Function: idealmul
Class: basic
Section: number_fields
C-Name: idealmul0
Prototype: GGGD0,L,p
Help: idealmul(nf,x,y,{flag=0}): product of the two ideals x and y in the
 number field nf. If (optional) flag is non-nul, reduce the result
Description: 
 (gen, gen, gen, ?0):gen	idealmul($1, $2, $3)
 (gen, gen, gen, 1):gen:prec	idealmulred($1, $2, $3, prec)
 (gen, gen, gen, #small):gen	$"invalid flag in idealmul"
 (gen, gen, gen, small):gen:prec	idealmul0($1, $2, $3, $4, prec)

Function: idealnorm
Class: basic
Section: number_fields
C-Name: idealnorm
Prototype: GG
Help: idealnorm(nf,x): norm of the ideal x in the number field nf

Function: idealpow
Class: basic
Section: number_fields
C-Name: idealpow0
Prototype: GGGD0,L,p
Help: idealpow(nf,x,n,{flag=0}): n-th power of the ideal x in HNF in the
 number field nf If (optional) flag is non-null, reduce the result

Function: idealprimedec
Class: basic
Section: number_fields
C-Name: primedec
Prototype: GG
Help: idealprimedec(nf,p): prime ideal decomposition of the prime number p
 in the number field nf as a vector of 5 component vectors [p,a,e,f,b]
 representing the prime ideals pZ_K+a. Z_K, e,f as usual, a as vector of
 components on the integral basis, b Lenstra's constant

Function: idealprincipal
Class: basic
Section: number_fields
C-Name: principalideal
Prototype: GG
Help: idealprincipal(nf,x): returns the principal ideal generated by the
 algebraic number x in the number field nf

Function: idealred
Class: basic
Section: number_fields
C-Name: ideallllred
Prototype: GGDGp
Help: idealred(nf,x,{vdir=0}): LLL reduction of the ideal x in the number
 field nf along direction vdir, in HNF

Function: idealstar
Class: basic
Section: number_fields
C-Name: idealstar0
Prototype: GGD1,L,
Help: idealstar(nf,I,{flag=1}): gives the structure of (Z_K/I)^*. flag is
 optional, and can be 0: simply gives the structure as a 3-component vector v
 such that v[1] is the order (i.e. eulerphi(I)), v[2] is a vector of cyclic
 components, and v[3] is a vector giving the corresponding generators. If
 flag=1 (default), gives idealstarinit, i.e. a 6-component vector
 [I,v,fa,f2,U,V] where v is as above without the generators, fa is the prime
 ideal factorisation of I and f2, U and V are technical but essential to work
 in (Z_K/I)^*. Finally if flag=2, same as with flag=1 except that the
 generators are also given

Function: idealtwoelt
Class: basic
Section: number_fields
C-Name: ideal_two_elt0
Prototype: GGDG
Help: idealtwoelt(nf,x,{a}): two-element representation of an ideal x in the
 number field nf. If (optional) a is non-zero, first element will be equal to
 a

Function: idealval
Class: basic
Section: number_fields
C-Name: idealval
Prototype: lGGG
Help: idealval(nf,x,p): valuation at p given in idealprimedec format of the
 ideal x in the number field nf

Function: ideleprincipal
Class: basic
Section: number_fields
C-Name: principalidele
Prototype: GGp
Help: ideleprincipal(nf,x): returns the principal idele generated by the
 algebraic number x in the number field nf

Function: if
Class: basic
Section: programming
Help: if(a,seq1,seq2): if a is nonzero, seq1 is evaluated, otherwise seq2.
 seq1 and seq2 are optional, and if seq2 is omitted, the preceding comma can
 be omitted also

Function: imag
Class: basic
Section: conversions
C-Name: gimag
Prototype: G
Help: imag(x): imaginary part of x

Function: incgam
Class: basic
Section: transcendental
C-Name: incgam0
Prototype: GGDGp
Help: incgam(s,x,{y}): incomplete gamma function. y is optional and is the
 precomputed value of gamma(s)

Function: incgamc
Class: basic
Section: transcendental
C-Name: incgamc
Prototype: GGp
Help: incgamc(s,x): complementary incomplete gamma function

Function: input
Class: gp
Section: programming
C-Name: input0
Prototype: 
Help: input(): read an expression from the input file or standard input

Function: install
Class: highlevel
Section: programming
C-Name: gpinstall
Prototype: vrrD"",r,D"",s,
Help: install(name,code,{gpname},{lib}): load from dynamic library 'lib' the
 function 'name'. Assign to it the name 'gpname' in this GP session, with
 argument code 'code'. If 'lib' is omitted use 'libpari.so'. If 'gpname' is
 omitted, use 'name'

Function: intcirc
Class: basic
Section: sums
C-Name: intcirc0
Prototype: V=GGEDGp
Help: intcirc(X=a,R,s,{tab}): numerical integration of s on the circle 
 |z-a|=R, divided by 2*I*Pi. tab is as in intnum.

Function: intformal
Class: basic
Section: polynomials
C-Name: integ
Prototype: GDn
Help: intformal(x,{y}): formal integration of x with respect to the main
 variable of y, or to the main variable of x if y is omitted

Function: intfouriercos
Class: basic
Section: sums
C-Name: intfourcos0
Prototype: V=GGGEDGp
Help: intfouriercos(X=a,b,x,s,{tab}): numerical integration from a to b
 of cos(2*Pi*x*X)*s(X) from a to b, where a, b, and tab are as in intnum.
 This is the cosine-Fourier transform if a=-infty and b=+infty.

Function: intfourierexp
Class: basic
Section: sums
C-Name: intfourexp0
Prototype: V=GGGEDGp
Help: intfourierexp(X=a,b,x,s,{tab}): numerical integration from a to b
 of exp(-2*I*Pi*x*X)*s(X) from a to b, where a, b, and tab are as in intnum.
 This is the ordinary Fourier transform if a=-infty and b=+infty. Note the
 minus sign.

Function: intfouriersin
Class: basic
Section: sums
C-Name: intfoursin0
Prototype: V=GGGEDGp
Help: intfouriersin(X=a,b,x,s,{tab}): numerical integration from a to b
 of sin(2*Pi*x*X)*s(X) from a to b, where a, b, and tab are as in intnum.
 This is the sine-Fourier transform if a=-infty and b=+infty.

Function: intfuncinit
Class: basic
Section: sums
C-Name: intfuncinit0
Prototype: V=GGED0,L,D0,L,p
Help: intfuncinit(X=a,b,s,{flag=0},{m=0}): initialize tables for integrations 
 from a to b using a weight s(X). Essential for integral transforms such
 as intmellininv, intlaplaceinv and intfourier, since it avoids recomputing
 all the time the same quantities. Must then be used with intmellininvshort
 (for intmellininv) and directly with intnum and not with the corresponding 
 integral transforms for the others. See help for intnum for coding of a 
 and b, and m is as in intnuminit. If flag is nonzero, assumes that 
 s(-X)=conj(s(X)), which is twice faster.

Function: intlaplaceinv
Class: basic
Section: sums
C-Name: intlaplaceinv0
Prototype: V=GGEDGp
Help: intlaplaceinv(X=sig,x,s,{tab}): numerical integration on the line
 real(z) = sig of s(z)exp(xz)dz/(2*I*Pi), i.e. inverse Laplace transform of s
 at x. tab is as in intnum.

Function: intmellininv
Class: basic
Section: sums
C-Name: intmellininv0
Prototype: V=GGEDGp
Help: intmellininv(X=sig,x,s,{tab}): numerical integration on the 
 line real(z) = sig (or sig[1]) of s(z)x^(-z)dz/(2*I*Pi), i.e. inverse Mellin 
 transform of s at x. sig is coded as follows: either it is real, and then
 by default assume s(z) decreases like exp(-z). Or sig = [sigR, al], sigR is
 the abcissa of integration, and al = 0 for slowly decreasing functions, or
 al > 0 if s(z) decreases like exp(-al*z). tab is as in intnum. Use 
 intmellininvshort if several values must be computed.

Function: intmellininvshort
Class: basic
Section: sums
C-Name: intmellininvshort
Prototype: GGGp
Help: intmellininvshort(sig,x,tab): numerical integration on the 
 line real(z) = sig (or sig[1]) of s(z)x^(-z)dz/(2*I*Pi), i.e. inverse Mellin
 transform of s at x. sig is coded as follows: either it is real, and then
 by default assume s(z) decreases like exp(-z). Or sig = [sigR, al], sigR is
 the abcissa of integration, and al = 0 for slowly decreasing functions, or
 al > 0 if s(z) decreases like exp(-al*z). Compulsory table tab has been 
 precomputed using the command intfuncinit(t=[[-1],sig[2]],[[1],sig[2]],s) 
 (with possibly its two optional additional parameters), where sig[2] = 1
 if not given. Orders of magnitude faster than intmellininv.

Function: intnum
Class: basic
Section: sums
C-Name: intnum0
Prototype: V=GGEDGp
Help: intnum(X=a,b,s,{tab}): numerical integration of s from a to b with 
 respect to X. a (and similarly b) is coded as follows. It can be a scalar: f
 is assumed to be C^infty at a. It can be a two component vector [a[1],a[2]],
 where a[1] is the scalar, and a[2] is the singularity exponent (in ]-1,0]),
 logs being neglected. It can be a one component vector [1] or [-1] meaning
 +infty or -infty, slowly decreasing functions. It can be a two component
 vector [[1], z] or [[-1], z], where [1] or [-1] indicates +infty or -infty
 and z is coded as follows. If z is zero, slowly decreasing. If z is real
 positive, exponentially decreasing, of the type exp(-zX). If z<-1, very
 slowly decreasing like X^(-z). If z is complex nonreal, real part is ignored
 and if z = r+I*s then if s>0, cosine oscillation exactly cos(sX), while if
 s<0, sine oscillation exactly sin(sX). If f is exponentially decreasing times
 oscillating function, you have a choice, but it is in general better to
 choose the oscillating part. Finally tab is either 0 (let the program choose 
 the integration step), a positive integer m (choose integration step
 1/2^m), or a table tab precomputed with intnuminit (depending on the type of
 interval: compact, semi-compact or R, very slow, slow, exponential, or cosine
 or sine-oscillating decrease).

Function: intnuminit
Class: basic
Section: sums
C-Name: intnuminit
Prototype: GGD0,L,p
Help: intnuminit(a,b,{m=0}): initialize tables for integrations from a to b.
 See help for intnum for coding of a and b. Possible types: compact interval,
 semi-compact (one extremity at + or - infinity) or R, and very slowly, slowly
 or exponentially decreasing, or sine or cosine oscillating at infinities,

Function: intnuminitgen
Class: basic
Section: sums
C-Name: intnuminitgen0
Prototype: VGGED0,L,D0,L,p
Help: intnuminitgen(t,a,b,ph,{m=0},{flag=0}): initialize tables for 
 integrations from a to b using abcissas ph(t) and weights ph'(t). Note that 
 there is no equal sign after the variable name t since t always goes from 
 -infty to +infty, but it is ph(t) which goes from a to b, and this is not 
 checked. If flag = 1 or 2, multiply the reserved table length by 4^flag, to 
 avoid corresponding error.

Function: intnumromb
Class: basic
Section: sums
C-Name: intnumromb0
Prototype: V=GGED0,L,p
Help: intnumromb(X=a,b,s,{flag=0}): numerical integration of s (smooth in 
 ]a,b[) from a to b with respect to X. flag is optional and mean 0: default. 
 s can be evaluated exactly on [a,b]; 1: general function; 2: a or b can be 
 plus or minus infinity (chosen suitably), but of same sign; 3: s has only 
 limits at a or b

Function: intnumstep
Class: basic
Section: sums
C-Name: intnumstep
Prototype: lp
Help: intnumstep(): gives the default value of m used by all intnum and sumnum 
 routines, such that the integration step is 1/2^m.

Function: isfundamental
Class: basic
Section: number_theoretical
C-Name: gisfundamental
Prototype: G
Help: isfundamental(x): true(1) if x is a fundamental discriminant
 (including 1), false(0) if not
Description: 
 (int):bool	isfundamental($1)
 (gen):gen	gisfundamental($1)

Function: ispower
Class: basic
Section: number_theoretical
C-Name: ispower
Prototype: lGDGD&
Help: ispower(x,{k},{&n}): true (1) if x is a k-th power, false (0) if not.
 If n is given and a k-th root was computed in the process, put that in n.
 If k is omitted, return the maximal k >= 2 such that x = n^k is a
 perfect power, or 0 if no such k exist.
Description: 
 (int):small       isanypower($1, NULL)
 (int, &int):small isanypower($1, &$2)

Function: isprime
Class: basic
Section: number_theoretical
C-Name: gisprime
Prototype: GD0,L,
Help: isprime(x,{flag=0}): true(1) if x is a (proven) prime number, false(0)
 if not. If flag is 0 or omitted, use a combination of algorithms. If flag is
 1, the primality is certified by the Pocklington-Lehmer Test. If flag is 2,
 the primality is certified using the APRCL test.
Description: 
 (int, ?0):bool	isprime($1)
 (int, 1):bool	plisprime($1, 0)
 (int, 2):gen	plisprime($1, 1)
 (gen, ?small):gen	gisprime($1, $2)

Function: ispseudoprime
Class: basic
Section: number_theoretical
C-Name: gispseudoprime
Prototype: GD0,L,
Help: ispseudoprime(x,{n}): true(1) if x is a strong pseudoprime, false(0)
 if not. If n is 0 or omitted, use BPSW test, otherwise use strong
 Rabin-Miller test for n randomly chosen bases
Description: 
 (int):bool	ispsp($1)
 (gen):gen	gispsp($1)

Function: issquare
Class: basic
Section: number_theoretical
C-Name: gissquarerem
Prototype: GD&
Help: issquare(x,{&n}): true(1) if x is a square, false(0) if not. If n is
 given puts the exact square root there if it was computed
Description: 
 (int):bool	Z_issquare($1)
 (mp):int	gissquare($1)
 (gen):gen	gissquare($1)
 (int, &int):bool	Z_issquarerem($1, &$2)
 (gen, &gen):gen	gissquarerem($1, &$2)

Function: issquarefree
Class: basic
Section: number_theoretical
C-Name: gissquarefree
Prototype: G
Help: issquarefree(x): true(1) if x is squarefree, false(0) if not
Description: 
 (int):bool	issquarefree($1)
 (gen):gen	gissquarefree($1)

Function: kill
Class: basic
Section: programming
C-Name: kill0
Prototype: vS
Help: kill(x): kills the present value of the variable or function x.
 Returns new value or 0

Function: kronecker
Class: basic
Section: number_theoretical
C-Name: gkronecker
Prototype: GG
Help: kronecker(x,y): kronecker symbol (x/y)
Description: 
 (small, small):small	kross($1, $2)
 (int, small):small	krois($1, $2)
 (small, int):small	krosi($1, $2)
 (int, int):small	kronecker($1, $2)
 (gen, small):gen	gkrogs($1, $2)
 (gen, gen):gen	gkronecker($1, $2)

Function: lcm
Class: basic
Section: number_theoretical
C-Name: glcm0
Prototype: GDG
Help: lcm(x,{y}): least common multiple of x and y, i.e. x*y / gcd(x,y)
Description: 
 (int, int):int lcmii($1, $2)
 (gen):gen      glcm0($1, NULL)
 (gen, gen):gen glcm($1, $2)

Function: length
Class: basic
Section: conversions
C-Name: glength
Prototype: lG
Help: length(x): number of non code words in x, number of characters for a
 string
Description: 
 (vecsmall):lg	lg($1)
 (vec):lg	lg($1)
 (pol):small	lgpol($1)
 (gen):small	glength($1)

Function: lex
Class: basic
Section: operators
C-Name: lexcmp
Prototype: iGG
Help: lex(x,y): compare x and y lexicographically (1 if x>y, 0 if x=y, -1 if
 x<y)

Function: lift
Class: basic
Section: conversions
C-Name: lift0
Prototype: GDn
Help: lift(x,{v}): lifts every element of Z/nZ to Z or T[x]/PT[x] to T[x]
 for a type T if v is omitted, otherwise lift only polymods with main
 variable v. If v does not occur in x, lift only intmods
Description: 
 (pol):pol	lift($1)
 (vec):vec	lift($1)
 (gen):gen	lift($1)
 (pol, var):pol	lift0($1, $2)
 (vec, var):vec	lift0($1, $2)
 (gen, var):gen	lift0($1, $2)

Function: lindep
Class: basic
Section: linear_algebra
C-Name: lindep0
Prototype: GD0,L,p
Help: lindep(x,{flag=0}): Z-linear dependencies between components of x.
 flag is optional, and can be 0: default, PSLQ; -1: using Hastad et al; -2:
 returns a non-trivial kernel vector (not integral in general); positive, and
 in that case should be between 0.5 and 1.0 times the accuracy in decimal
 digits of x, using a standard LLL

Function: listcreate
Class: basic
Section: linear_algebra
C-Name: listcreate
Prototype: L
Help: listcreate(n): creates an empty list of maximum length n
Description: 
 (small):list	listcreate($1)

Function: listinsert
Class: basic
Section: linear_algebra
C-Name: listinsert
Prototype: GGL
Help: listinsert(list,x,n): insert x at index n in list, shifting the
 remaining elements to the right
Description: 
 (list, gen, small):gen	listinsert($1, $2, $3)

Function: listkill
Class: basic
Section: linear_algebra
C-Name: listkill
Prototype: vG
Help: listkill(list): kills list

Function: listput
Class: basic
Section: linear_algebra
C-Name: listput
Prototype: GGD0,L,
Help: listput(list,x,{n}): sets n-th element of list equal to x. If n is
 omitted or greater than the current list length, just append x
Description: 
 (list, gen, small):gen	listput($1, $2, $3)

Function: listsort
Class: basic
Section: linear_algebra
C-Name: listsort
Prototype: GD0,L,
Help: listsort(list,{flag=0}): sort list in place. If flag is non-zero,
 suppress all but one occurence of each element in list

Function: lngamma
Class: basic
Section: transcendental
C-Name: glngamma
Prototype: Gp
Help: lngamma(x): logarithm of the gamma function of x

Function: log
Class: basic
Section: transcendental
C-Name: glog
Prototype: Gp
Help: log(x): natural logarithm of x.
Description: 
 (gen):gen:prec	glog($1, prec)

Function: matadjoint
Class: basic
Section: linear_algebra
C-Name: adj
Prototype: G
Help: matadjoint(x): adjoint matrix of x

Function: matalgtobasis
Class: basic
Section: number_fields
C-Name: matalgtobasis
Prototype: GG
Help: matalgtobasis(nf,x): nfalgtobasis applied to every element of the
 matrix x

Function: matbasistoalg
Class: basic
Section: number_fields
C-Name: matbasistoalg
Prototype: GG
Help: matbasistoalg(nf,x): nfbasistoalg applied to every element of the
 matrix x

Function: matcompanion
Class: basic
Section: linear_algebra
C-Name: assmat
Prototype: G
Help: matcompanion(x): companion matrix to polynomial x

Function: matdet
Class: basic
Section: linear_algebra
C-Name: det0
Prototype: GD0,L,
Help: matdet(x,{flag=0}): determinant of the matrix x using Gauss-Bareiss.
 If (optional) flag is set to 1, use classical gaussian elimination (slightly
 better for integer entries)
Description: 
 (gen, ?0):gen	det($1)
 (gen, 1):gen	det2($1)
 (gen, #small):gen	$"incorrect flag in matdet"
 (gen, small):gen	det0($1, $2)

Function: matdetint
Class: basic
Section: linear_algebra
C-Name: detint
Prototype: G
Help: matdetint(x): some multiple of the determinant of the lattice
 generated by the columns of x (0 if not of maximal rank). Useful with
 mathnfmod

Function: matdiagonal
Class: basic
Section: linear_algebra
C-Name: diagonal
Prototype: G
Help: matdiagonal(x): creates the diagonal matrix whose diagonal entries are
 the entries of the vector x

Function: mateigen
Class: basic
Section: linear_algebra
C-Name: eigen
Prototype: Gp
Help: mateigen(x): eigenvectors of the matrix x given as columns of a matrix

Function: matfrobenius
Class: basic
Section: linear_algebra
C-Name: matfrobenius
Prototype: GD0,L,Dn
Help: matfrobenius(M,{flag},{v=x}): Return the Frobenius form of the square
 matrix M. If flag is 1, return only the elementary divisors as a vector of
 polynomials in the variable v. If flag is 2, return a two-components vector
 [F,B] where F is the Frobenius form and B is the basis change so that
 M=B^-1*F*B.

Function: mathess
Class: basic
Section: linear_algebra
C-Name: hess
Prototype: G
Help: mathess(x): Hessenberg form of x

Function: mathilbert
Class: basic
Section: linear_algebra
C-Name: mathilbert
Prototype: L
Help: mathilbert(n): Hilbert matrix of order n (n C-integer)

Function: mathnf
Class: basic
Section: linear_algebra
C-Name: mathnf0
Prototype: GD0,L,
Help: mathnf(A,{flag=0}): (upper triangular) Hermite normal form of A, basis
 for the lattice formed by the columns of A. flag is optional whose value
 range from 0 to 4 (0 if omitted), meaning : 0: naive algorithm. 1: Use
 Batut's algorithm. Output 2-component vector [H,U] such that H is the HNF of
 A, and U is a unimodular matrix such that AU=H. 3: Use Batut's algorithm.
 Output [H,U,P] where P is a permutation matrix such that P A U = H. 4:
 as 1, using a heuristic variant of LLL reduction along the way

Function: mathnfmod
Class: basic
Section: linear_algebra
C-Name: hnfmod
Prototype: GG
Help: mathnfmod(x,d): (upper triangular) Hermite normal form of x, basis for
 the lattice formed by the columns of x, where d is a multiple of the
 non-zero determinant of this lattice

Function: mathnfmodid
Class: basic
Section: linear_algebra
C-Name: hnfmodid
Prototype: GG
Help: mathnfmodid(x,d): (upper triangular) Hermite normal form of x
 concatenated with d times the identity matrix

Function: matid
Class: basic
Section: linear_algebra
C-Name: matid
Prototype: L
Help: matid(n): identity matrix of order n (n C-integer)
Description: 
 (small):vec    matid($1)

Function: matimage
Class: basic
Section: linear_algebra
C-Name: matimage0
Prototype: GD0,L,
Help: matimage(x,{flag=0}): basis of the image of the matrix x. flag is
 optional and can be set to 0 or 1, corresponding to two different algorithms

Function: matimagecompl
Class: basic
Section: linear_algebra
C-Name: imagecompl
Prototype: G
Help: matimagecompl(x): vector of column indices not corresponding to the
 indices given by the function matimage

Function: matindexrank
Class: basic
Section: linear_algebra
C-Name: indexrank
Prototype: G
Help: matindexrank(x): gives two extraction vectors (rows and columns) for
 the matrix x such that the extracted matrix is square of maximal rank

Function: matintersect
Class: basic
Section: linear_algebra
C-Name: intersect
Prototype: GG
Help: matintersect(x,y): intersection of the vector spaces whose bases are
 the columns of x and y

Function: matinverseimage
Class: basic
Section: linear_algebra
C-Name: inverseimage
Prototype: GG
Help: matinverseimage(x,y): an element of the inverse image of the vector y
 by the matrix x if one exists, the empty vector otherwise

Function: matisdiagonal
Class: basic
Section: linear_algebra
C-Name: isdiagonal
Prototype: lG
Help: matisdiagonal(x): true(1) if x is a diagonal matrix, false(0)
 otherwise

Function: matker
Class: basic
Section: linear_algebra
C-Name: matker0
Prototype: GD0,L,
Help: matker(x,{flag=0}): basis of the kernel of the matrix x. flag is
 optional, and may be set to 0: default; non-zero: x is known to have
 integral entries

Function: matkerint
Class: basic
Section: linear_algebra
C-Name: matkerint0
Prototype: GD0,L,
Help: matkerint(x,{flag=0}): LLL-reduced Z-basis of the kernel of the matrix
 x with integral entries. flag is optional, and may be set to 0: default,
 uses a modified LLL, 1: uses matrixqz

Function: matmuldiagonal
Class: basic
Section: linear_algebra
C-Name: matmuldiagonal
Prototype: GG
Help: matmuldiagonal(x,d): product of matrix x by diagonal matrix whose
 diagonal coefficients are those of the vector d, equivalent but faster than
 x*matdiagonal(d)

Function: matmultodiagonal
Class: basic
Section: linear_algebra
C-Name: matmultodiagonal
Prototype: GG
Help: matmultodiagonal(x,y): product of matrices x and y, knowing that the
 result will be a diagonal matrix. Much faster than general multiplication in
 that case

Function: matpascal
Class: basic
Section: linear_algebra
C-Name: matqpascal
Prototype: LDG
Help: matpascal(n,{q}): Pascal triangle of order n if q is omited. q-Pascal
 triangle otherwise

Function: matrank
Class: basic
Section: linear_algebra
C-Name: rank
Prototype: lG
Help: matrank(x): rank of the matrix x

Function: matrix
Class: basic
Section: linear_algebra
C-Name: matrice
Prototype: GGDVDVDI
Help: matrix(m,n,{X},{Y},{expr=0}): mXn matrix of expression expr, the row
 variable X going from 1 to m and the column variable Y going from 1 to n. By
 default, fill with 0s

Function: matrixqz
Class: basic
Section: linear_algebra
C-Name: matrixqz0
Prototype: GG
Help: matrixqz(x,p): if p>=0, transforms the rational or integral mxn (m>=n)
 matrix x into an integral matrix with gcd of maximal determinants equal to 1
 if p is equal to 0, not divisible by p otherwise. If p=-1, finds a basis of
 the intersection with Z^n of the lattice spanned by the columns of x. If
 p=-2, finds a basis of the intersection with Z^n of the Q-vector space
 spanned by the columns of x

Function: matsize
Class: basic
Section: linear_algebra
C-Name: matsize
Prototype: G
Help: matsize(x): number of rows and columns of the vector/matrix x as a
 2-vector

Function: matsnf
Class: basic
Section: linear_algebra
C-Name: matsnf0
Prototype: GD0,L,
Help: matsnf(x,{flag=0}): Smith normal form (i.e. elementary divisors) of
 the matrix x, expressed as a vector d. Binary digits of flag mean 1: returns
 [u,v,d] where d=u*x*v, otherwise only the diagonal d is returned, 2: allow
 polynomial entries, otherwise assume x is integral, 4: removes all
 information corresponding to entries equal to 1 in d

Function: matsolve
Class: basic
Section: linear_algebra
C-Name: gauss
Prototype: GG
Help: matsolve(M,B): gaussian solution of MX=B (M matrix, B column vector)

Function: matsolvemod
Class: basic
Section: linear_algebra
C-Name: matsolvemod0
Prototype: GGGD0,L,
Help: matsolvemod(M,D,B,{flag=0}): one solution of system of congruences
 MX=B mod D (M matrix, B and D column vectors). If (optional) flag is
 non-null return all solutions

Function: matsupplement
Class: basic
Section: linear_algebra
C-Name: suppl
Prototype: G
Help: matsupplement(x): supplement the columns of the matrix x to an
 invertible matrix

Function: mattranspose
Class: basic
Section: linear_algebra
C-Name: gtrans
Prototype: G
Help: mattranspose(x): x~=transpose of x

Function: max
Class: basic
Section: operators
C-Name: gmax
Prototype: GG
Help: max(x,y): maximum of x and y
Description: 
 (small, small):small	maxss($1, $2)
 (small, int):int	gmaxsg($1, $2)
 (int, small):int	gmaxgs($1, $2)
 (int, int):int	gmax($1, $2)
 (small, mp):mp	gmaxsg($1, $2)
 (mp, small):mp	gmaxgs($1, $2)
 (mp, mp):mp	gmax($1, $2)
 (small, gen):gen	gmaxsg($1, $2)
 (gen, small):gen	gmaxgs($1, $2)
 (gen, gen):gen	gmax($1, $2)

Function: min
Class: basic
Section: operators
C-Name: gmin
Prototype: GG
Help: min(x,y): minimum of x and y
Description: 
 (small, small):small	minss($1, $2)
 (small, int):int	gminsg($1, $2)
 (int, small):int	gmings($1, $2)
 (int, int):int	gmin($1, $2)
 (small, mp):mp	gminsg($1, $2)
 (mp, small):mp	gmings($1, $2)
 (mp, mp):mp	gmin($1, $2)
 (small, gen):gen	gminsg($1, $2)
 (gen, small):gen	gmings($1, $2)
 (gen, gen):gen	gmin($1, $2)

Function: minpoly
Class: basic
Section: linear_algebra
C-Name: minpoly
Prototype: GDn
Help: minpoly(A,{v=x}): minimal polynomial of the matrix or polmod A.

Function: modreverse
Class: basic
Section: number_fields
C-Name: polymodrecip
Prototype: G
Help: modreverse(x): reverse polymod of the polymod x, if it exists

Function: moebius
Class: basic
Section: number_theoretical
C-Name: gmu
Prototype: G
Help: moebius(x): Moebius function of x
Description: 
 (int):small	mu($1)
 (gen):gen	gmu($1)

Function: newtonpoly
Class: basic
Section: number_fields
C-Name: newtonpoly
Prototype: GG
Help: newtonpoly(x,p): Newton polygon of polynomial x with respect to the
 prime p

Function: next
Class: basic
Section: programming
C-Name: next0
Prototype: D1,L,
Help: next({n=1}): interrupt execution of current instruction sequence, and
 start another iteration from the n-th innermost enclosing loops

Function: nextprime
Class: basic
Section: number_theoretical
C-Name: gnextprime
Prototype: G
Help: nextprime(x): smallest pseudoprime >= x
Description: 
 (int):int	nextprime($1)
 (gen):gen	gnextprime($1)

Function: nfalgtobasis
Class: basic
Section: number_fields
C-Name: algtobasis
Prototype: GG
Help: nfalgtobasis(nf,x): transforms the algebraic number x into a column
 vector on the integral basis nf.zk

Function: nfbasis
Class: basic
Section: number_fields
C-Name: nfbasis0
Prototype: GD0,L,DG
Help: nfbasis(x,{flag=0},{p}): integral basis of the field Q[a], where a is
 a root of the polynomial x, using the round 4 algorithm. Second and third
 args are optional. Binary digits of flag mean 1: assume that no square of a
 prime>primelimit divides the discriminant of x, 2: use round 2 algorithm
 instead. If present, p provides the matrix of a partial factorization of the
 discriminant of x, useful if one wants only an order maximal at certain
 primes only

Function: nfbasistoalg
Class: basic
Section: number_fields
C-Name: basistoalg
Prototype: GG
Help: nfbasistoalg(nf,x): transforms the column vector x on the integral
 basis into an algebraic number

Function: nfdetint
Class: basic
Section: number_fields
C-Name: nfdetint
Prototype: GG
Help: nfdetint(nf,x): multiple of the ideal determinant of the pseudo
 generating set x

Function: nfdisc
Class: basic
Section: number_fields
C-Name: nfdiscf0
Prototype: GD0,L,DG
Help: nfdisc(x,{flag=0},{p}): discriminant of the number field defined by
 the polynomial x using round 4. Optional args flag and p are as in nfbasis

Function: nfeltdiv
Class: basic
Section: number_fields
C-Name: element_div
Prototype: GGG
Help: nfeltdiv(nf,a,b): element a/b in nf

Function: nfeltdiveuc
Class: basic
Section: number_fields
C-Name: nfdiveuc
Prototype: GGG
Help: nfeltdiveuc(nf,a,b): gives algebraic integer q such that a-bq is small

Function: nfeltdivmodpr
Class: basic
Section: number_fields
C-Name: element_divmodpr
Prototype: GGGG
Help: nfeltdivmodpr(nf,a,b,pr): element a/b modulo pr in nf, where pr is in
 modpr format (see nfmodprinit)

Function: nfeltdivrem
Class: basic
Section: number_fields
C-Name: nfdivrem
Prototype: GGG
Help: nfeltdivrem(nf,a,b): gives [q,r] such that r=a-bq is small

Function: nfeltmod
Class: basic
Section: number_fields
C-Name: nfmod
Prototype: GGG
Help: nfeltmod(nf,a,b): gives r such that r=a-bq is small with q algebraic
 integer

Function: nfeltmul
Class: basic
Section: number_fields
C-Name: element_mul
Prototype: GGG
Help: nfeltmul(nf,a,b): element a. b in nf

Function: nfeltmulmodpr
Class: basic
Section: number_fields
C-Name: element_mulmodpr
Prototype: GGGG
Help: nfeltmulmodpr(nf,a,b,pr): element a. b modulo pr in nf, where pr is in
 modpr format (see nfmodprinit)

Function: nfeltpow
Class: basic
Section: number_fields
C-Name: element_pow
Prototype: GGG
Help: nfeltpow(nf,a,k): element a^k in nf

Function: nfeltpowmodpr
Class: basic
Section: number_fields
C-Name: element_powmodpr
Prototype: GGGG
Help: nfeltpowmodpr(nf,a,k,pr): element a^k modulo pr in nf, where pr is in
 modpr format (see nfmodprinit)

Function: nfeltreduce
Class: basic
Section: number_fields
C-Name: element_reduce
Prototype: GGG
Help: nfeltreduce(nf,a,id): gives r such that a-r is in the ideal id and r
 is small

Function: nfeltreducemodpr
Class: basic
Section: number_fields
C-Name: nfreducemodpr
Prototype: GGG
Help: nfeltreducemodpr(nf,a,pr): element a modulo pr in nf, where pr is in
 modpr format (see nfmodprinit)

Function: nfeltval
Class: basic
Section: number_fields
C-Name: element_val
Prototype: lGGG
Help: nfeltval(nf,a,pr): valuation of element a at the prime pr as output by
 idealprimedec

Function: nffactor
Class: basic
Section: number_fields
C-Name: nffactor
Prototype: GG
Help: nffactor(nf,x): factor polynomial x in number field nf

Function: nffactormod
Class: basic
Section: number_fields
C-Name: nffactormod
Prototype: GGG
Help: nffactormod(nf,pol,pr): factorize polynomial pol modulo prime ideal pr
 in number field nf

Function: nfgaloisapply
Class: basic
Section: number_fields
C-Name: galoisapply
Prototype: GGG
Help: nfgaloisapply(nf,aut,x): Apply the Galois automorphism sigma
 (polynomial or polymod) to the object x (element or ideal) in the number
 field nf

Function: nfgaloisconj
Class: basic
Section: number_fields
C-Name: galoisconj0
Prototype: GD0,L,DGp
Help: nfgaloisconj(nf,{flag=0},{den}): list of conjugates of a root of the
 polynomial x=nf.pol in the same number field. flag is optional (set to 0 by
 default), meaning 0: use combination of flag 4 and 1, always complete; 1:
 use nfroots; 2 : use complex numbers, LLL on integral basis (not always
 complete); 4: use Allombert's algorithm, complete if the field is Galois of
 degree <= 35 (see manual for detail). nf can be simply a polynomial with
 flag 0,2 and 4, meaning: 0: use combination of flag 4 and 2, not always
 complete (but a warning is issued when the list is not proven complete); 2 &
 4: same meaning and restrictions. Note that only flag 4 can be applied to
 fields of large degrees (approx. >= 20)

Function: nfhilbert
Class: basic
Section: number_fields
C-Name: nfhilbert0
Prototype: lGGGDG
Help: nfhilbert(nf,a,b,{p}): if p is omitted, global Hilbert symbol (a,b) in
 nf, that is 1 if X^2-aY^2-bZ^2 has a non-trivial solution (X,Y,Z) in nf, -1
 otherwise. Otherwise compute the local symbol modulo the prime ideal p

Function: nfhnf
Class: basic
Section: number_fields
C-Name: nfhermite
Prototype: GG
Help: nfhnf(nf,x): if x=[A,I], gives a pseudo-basis of the module sum A_jI_j

Function: nfhnfmod
Class: basic
Section: number_fields
C-Name: nfhermitemod
Prototype: GGG
Help: nfhnfmod(nf,x,detx): if x=[A,I], and detx is a multiple of the ideal
 determinant of x, gives a pseudo-basis of the module sum A_jI_j

Function: nfinit
Class: basic
Section: number_fields
C-Name: nfinit0
Prototype: GD0,L,p
Help: nfinit(pol,{flag=0}): pol being a nonconstant irreducible polynomial,
 gives the vector: [pol,[r1,r2],discf,index,[M,MC,T2,T,different] (see
 manual),r1+r2 first roots, integral basis, matrix of power basis in terms of
 integral basis, multiplication table of basis]. flag is optional and can be
 set to 0: default; 1: do not compute different; 2: first use polred to find
 a simpler polynomial; 3: outputs a two-element vector [nf,Mod(a,P)], where
 nf is as in 2 and Mod(a,P) is a polymod equal to Mod(x,pol) and P=nf.pol; 4:
 as 2 but use a partial polred; 5: is to 3 what 4 is to 2
Description: 
 (gen, ?0):nf:prec	nfinit0($1, 0, prec)
 (gen, 1):nf:prec	nfinit0($1, 1, prec)
 (gen, 2):nf:prec	nfinit0($1, 2, prec)
 (gen, 3):gen:prec	nfinit0($1, 3, prec)
 (gen, 4):nf:prec	nfinit0($1, 4, prec)
 (gen, 5):gen:prec	nfinit0($1, 5, prec)
 (gen, 6):nf:prec	nfinit0($1, 6, prec)
 (gen, #small):void	$"incorrect flag in nfinit"
 (gen, small):gen:prec	nfinit0($1, $2, prec)

Function: nfisideal
Class: basic
Section: number_fields
C-Name: isideal
Prototype: lGG
Help: nfisideal(nf,x): true(1) if x is an ideal in the number field nf,
 false(0) if not

Function: nfisincl
Class: basic
Section: number_fields
C-Name: nfisincl
Prototype: GG
Help: nfisincl(x,y): tests whether the number field x is isomorphic to a
 subfield of y (where x and y are either polynomials or number fields as
 output by nfinit). Return 0 if not, and otherwise all the isomorphisms. If y
 is a number field, a faster algorithm is used

Function: nfisisom
Class: basic
Section: number_fields
C-Name: nfisisom
Prototype: GG
Help: nfisisom(x,y): as nfisincl but tests whether x is isomorphic to y

Function: nfkermodpr
Class: basic
Section: number_fields
C-Name: nfkermodpr
Prototype: GGG
Help: nfkermodpr(nf,x,pr): kernel of the matrix x in Z_K/pr, where pr is in
 modpr format (see nfmodprinit)

Function: nfmodprinit
Class: basic
Section: number_fields
C-Name: nfmodprinit
Prototype: GG
Help: nfmodprinit(nf,pr): transform the 5 element row vector pr representing
 a prime ideal into modpr format necessary for all operations mod pr in the
 number field nf (see manual for details about the format)

Function: nfnewprec
Class: basic
Section: number_fields
C-Name: nfnewprec
Prototype: Gp
Help: nfnewprec(nf): transform the number field data nf into new data using
 the current (usually larger) precision

Function: nfroots
Class: basic
Section: number_fields
C-Name: nfroots
Prototype: DGG
Help: nfroots({nf},pol): roots of polynomial pol belonging to nf (Q if
 omitted) without multiplicity

Function: nfrootsof1
Class: basic
Section: number_fields
C-Name: rootsof1
Prototype: G
Help: nfrootsof1(nf): number of roots of unity and primitive root of unity
 in the number field nf

Function: nfsnf
Class: basic
Section: number_fields
C-Name: nfsmith
Prototype: GG
Help: nfsnf(nf,x): if x=[A,I,J], outputs [c_1,...c_n] Smith normal form of x

Function: nfsolvemodpr
Class: basic
Section: number_fields
C-Name: nfsolvemodpr
Prototype: GGGG
Help: nfsolvemodpr(nf,a,b,pr): solution of a*x=b in Z_K/pr, where a is a
 matrix and b a column vector, and where pr is in modpr format (see
 nfmodprinit)

Function: nfsubfields
Class: basic
Section: number_fields
C-Name: subfields0
Prototype: GDG
Help: nfsubfields(nf,{d=0}): find all subfields of degree d of number field
 nf (all subfields if d is null or omitted). Result is a vector of subfields,
 each being given by [g,h], where g is an absolute equation and h expresses
 one of the roots of g in terms of the root x of the polynomial defining nf

Function: norm
Class: basic
Section: conversions
C-Name: gnorm
Prototype: G
Help: norm(x): norm of x

Function: norml2
Class: basic
Section: conversions
C-Name: gnorml2
Prototype: G
Help: norml2(x): square of the L2-norm of the vector x

Function: numbpart
Class: basic
Section: number_theoretical
C-Name: numbpart
Prototype: G
Help: numbpart(x): number of partitions of x

Function: numdiv
Class: basic
Section: number_theoretical
C-Name: gnumbdiv
Prototype: G
Help: numdiv(x): number of divisors of x
Description: 
 (int):int	numbdiv($1)
 (gen):gen	gnumbdiv($1)

Function: numerator
Class: basic
Section: conversions
C-Name: numer
Prototype: G
Help: numerator(x): numerator of x

Function: numtoperm
Class: basic
Section: conversions
C-Name: numtoperm
Prototype: LG
Help: numtoperm(n,k): permutation number k (mod n!) of n letters (n
 C-integer)

Function: omega
Class: basic
Section: number_theoretical
C-Name: gomega
Prototype: G
Help: omega(x): number of distinct prime divisors of x
Description: 
 (int):small	omega($1)
 (gen):gen	gomega($1)

Function: padicappr
Class: basic
Section: polynomials
C-Name: padicappr
Prototype: GG
Help: padicappr(x,a): p-adic roots of the polynomial x congruent to a mod p

Function: padicprec
Class: basic
Section: conversions
C-Name: padicprec
Prototype: lGG
Help: padicprec(x,p): absolute p-adic precision of object x

Function: permtonum
Class: basic
Section: conversions
C-Name: permtonum
Prototype: G
Help: permtonum(vect): ordinal (between 1 and n!) of permutation vect

Function: plot
Class: highlevel
Section: graphic
C-Name: plot
Prototype: vV=GGIDGDGp
Help: plot(X=a,b,expr,{ymin},{ymax}): crude plot of expression expr, X goes
 from a to b, with Y ranging from ymin to ymax. If ymin (resp. ymax) is not
 given, the minima (resp. the maxima) of the expression is used instead

Function: plotbox
Class: highlevel
Section: graphic
C-Name: rectbox
Prototype: vLGG
Help: plotbox(w,x2,y2): if the cursor is at position (x1,y1), draw a box
 with diagonal (x1,y1) and (x2,y2) in rectwindow w (cursor does not move)

Function: plotclip
Class: highlevel
Section: graphic
C-Name: rectclip
Prototype: vL
Help: plotclip(w): clip the contents of the rectwindow to the bounding box
 (except strings)

Function: plotcolor
Class: highlevel
Section: graphic
C-Name: rectcolor
Prototype: vLL
Help: plotcolor(w,c): in rectwindow w, set default color to c. Possible
 values for c are 1=black, 2=blue, 3=sienna, 4=red, 5=cornsilk, 6=grey,
 7=gainsborough

Function: plotcopy
Class: highlevel
Section: graphic
C-Name: rectcopy_gen
Prototype: vLLGGD0,L,
Help: plotcopy(sourcew,destw,dx,dy,{flag=0}): copy the contents of
 rectwindow sourcew to rectwindow destw with offset (dx,dy). If flag's bit 1
 is set, dx and dy express fractions of the size of the current output
 device, otherwise dx and dy are in pixels. dx and dy are relative positions
 of northwest corners if other bits of flag vanish, otherwise of: 2:
 southwest, 4: southeast, 6: northeast corners

Function: plotcursor
Class: highlevel
Section: graphic
C-Name: rectcursor
Prototype: L
Help: plotcursor(w): current position of cursor in rectwindow w

Function: plotdraw
Class: highlevel
Section: graphic
C-Name: rectdraw_flag
Prototype: vGD0,L,
Help: plotdraw(list, {flag=0}): draw vector of rectwindows list at indicated
 x,y positions; list is a vector w1,x1,y1,w2,x2,y2,etc. . If flag!=0, x1, y1
 etc. express fractions of the size of the current output device

Function: ploth
Class: highlevel
Section: graphic
C-Name: ploth
Prototype: V=GGIpD0,M,D0,L,\nParametric|1; Recursive|2; no_Rescale|4; no_X_axis|8; no_Y_axis|16; no_Frame|32; no_Lines|64; Points_too|128; Splines|256; no_X_ticks|512; no_Y_ticks|1024; Same_ticks|2048
Help: ploth(X=a,b,expr,{flags=0},{n=0}): plot of expression expr, X goes
 from a to b in high resolution. Both flags and n are optional. Binary digits
 of flags mean: 1=Parametric, 2=Recursive, 4=no_Rescale, 8=no_X_axis,
 16=no_Y_axis, 32=no_Frame, 64=no_Lines (do not join points), 128=Points_too
 (plot both lines and points), 256=Splines (use cubic splines),
 512=no_X_ticks, 1024= no_Y_ticks, 2048=Same_ticks (plot all ticks with the
 same length). n specifies number of reference points on the graph (0=use
 default value). Returns a vector for the bounding box

Function: plothraw
Class: highlevel
Section: graphic
C-Name: plothraw
Prototype: GGD0,L,
Help: plothraw(listx,listy,{flag=0}): plot in high resolution points whose x
 (resp. y) coordinates are in listx (resp. listy). If flag is 1, join points,
 other non-0 flags should be combinations of bits 8,16,32,64,128,256 meaning
 the same as for ploth()

Function: plothsizes
Class: highlevel
Section: graphic
C-Name: plothsizes_flag
Prototype: D0,L,
Help: plothsizes({flag=0}): returns array of 6 elements: terminal width and
 height, sizes for ticks in horizontal and vertical directions, width and
 height of characters. If flag=0, sizes of ticks and characters are in
 pixels, otherwise are fractions of the screen size

Function: plotinit
Class: highlevel
Section: graphic
C-Name: initrect_gen
Prototype: vLD0,G,D0,G,D0,L,
Help: plotinit(w,{x=0},{y=0},{flag=0}): initialize rectwindow w to size x,y.
 If flag!=0, x and y express fractions of the size of the current output
 device. x=0 or y=0 means use the full size of the device

Function: plotkill
Class: highlevel
Section: graphic
C-Name: killrect
Prototype: vL
Help: plotkill(w): erase the rectwindow w

Function: plotlines
Class: highlevel
Section: graphic
C-Name: rectlines
Prototype: vLGGD0,L,
Help: plotlines(w,listx,listy,{flag=0}): draws an open polygon in rectwindow
 w where listx and listy contain the x (resp. y) coordinates of the vertices.
 If listx and listy are both single values (i.e not vectors), draw the
 corresponding line (and move cursor). If (optional) flag is non-zero, close
 the polygon

Function: plotlinetype
Class: highlevel
Section: graphic
C-Name: rectlinetype
Prototype: vLL
Help: plotlinetype(w,type): change the type of following lines in rectwindow
 w. type -2 corresponds to frames, -1 to axes, larger values may correspond
 to something else. w=-1 changes highlevel plotting

Function: plotmove
Class: highlevel
Section: graphic
C-Name: rectmove
Prototype: vLGG
Help: plotmove(w,x,y): move cursor to position x,y in rectwindow w

Function: plotpoints
Class: highlevel
Section: graphic
C-Name: rectpoints
Prototype: vLGG
Help: plotpoints(w,listx,listy): draws in rectwindow w the points whose x
 (resp y) coordinates are in listx (resp listy). If listx and listy are both
 single values (i.e not vectors), draw the corresponding point (and move
 cursor)

Function: plotpointsize
Class: highlevel
Section: graphic
C-Name: rectpointsize
Prototype: vLG
Help: plotpointsize(w,size): change the "size" of following points in
 rectwindow w. w=-1 changes global value

Function: plotpointtype
Class: highlevel
Section: graphic
C-Name: rectpointtype
Prototype: vLL
Help: plotpointtype(w,type): change the type of following points in
 rectwindow w. type -1 corresponds to a dot, larger values may correspond to
 something else. w=-1 changes highlevel plotting

Function: plotrbox
Class: highlevel
Section: graphic
C-Name: rectrbox
Prototype: vLGG
Help: plotrbox(w,dx,dy): if the cursor is at (x1,y1), draw a box with
 diagonal (x1,y1)-(x1+dx,y1+dy) in rectwindow w (cursor does not move)

Function: plotrecth
Class: highlevel
Section: graphic
C-Name: rectploth
Prototype: LV=GGIpD0,L,D0,L,
Help: plotrecth(w,X=xmin,xmax,expr,{flags=0},{n=0}): plot graph(s) for expr
 in rectwindow w, where expr is scalar for a single non-parametric plot, and
 a vector otherwise. If plotting is parametric, its length should be even and
 pairs of entries give points coordinates. If not, all entries but the first
 are y-coordinates. Both flags and n are optional. Binary digits of flags
 mean: 1 parametric plot, 2 recursive plot, 4 do not rescale w, 8 omit
 x-axis, 16 omit y-axis, 32 omit frame, 64 do not join points, 128 plot both
 lines and points. n specifies the number of reference points on the graph
 (0=use default value). Returns a vector for the bounding box

Function: plotrecthraw
Class: highlevel
Section: graphic
C-Name: rectplothraw
Prototype: LGD0,L,
Help: plotrecthraw(w,data,{flags=0}): plot graph(s) for data in rectwindow
 w, where data is a vector of vectors. If plot is parametric, length of data
 should be even, and pairs of entries give curves to plot. If not, first
 entry gives x-coordinate, and the other ones y-coordinates. Admits the same
 optional flags as plotrecth, save that recursive plot is meaningless

Function: plotrline
Class: highlevel
Section: graphic
C-Name: rectrline
Prototype: vLGG
Help: plotrline(w,dx,dy): if the cursor is at (x1,y1), draw a line from
 (x1,y1) to (x1+dx,y1+dy) (and move the cursor) in the rectwindow w

Function: plotrmove
Class: highlevel
Section: graphic
C-Name: rectrmove
Prototype: vLGG
Help: plotrmove(w,dx,dy): move cursor to position (dx,dy) relative to the
 present position in the rectwindow w

Function: plotrpoint
Class: highlevel
Section: graphic
C-Name: rectrpoint
Prototype: vLGG
Help: plotrpoint(w,dx,dy): draw a point (and move cursor) at position dx,dy
 relative to present position of the cursor in rectwindow w

Function: plotscale
Class: highlevel
Section: graphic
C-Name: rectscale
Prototype: vLGGGG
Help: plotscale(w,x1,x2,y1,y2): scale the coordinates in rectwindow w so
 that x goes from x1 to x2 and y from y1 to y2 (y2<y1 is allowed)

Function: plotstring
Class: highlevel
Section: graphic
C-Name: rectstring3
Prototype: vLsD0,L,
Help: plotstring(w,x,{flags=0}): draw in rectwindow w the string
 corresponding to x. Bits 1 and 2 of flag regulate horizontal alignment: left
 if 0, right if 2, center if 1. Bits 4 and 8 regulate vertical alignment:
 bottom if 0, top if 8, v-center if 4. Can insert additional gap between
 point and string: horizontal if bit 16 is set, vertical if bit 32 is set

Function: polcoeff
Class: basic
Section: polynomials
C-Name: polcoeff0
Prototype: GLDn
Help: polcoeff(x,s,{v}): coefficient of degree s of x, or the s-th component
 for vectors or matrices (for which it is simpler to use x[]). With respect
 to the main variable if v is omitted, with respect to the variable v
 otherwise
Description: 
 (pol, 0):gen:copy      constant_term($1)
 (gen, small, ?var):gen polcoeff0($1, $2, $3)

Function: polcompositum
Class: basic
Section: number_fields
C-Name: polcompositum0
Prototype: GGD0,L,
Help: polcompositum(pol1,pol2,{flag=0}): vector of all possible compositums
 of the number fields defined by the polynomials pol1 and pol2. If (optional)
 flag is set (i.e non-null), output for each compositum, not only the
 compositum polynomial pol, but a vector [pol,al1,al2,k] where al1 (resp.
 al2) is a root of pol1 (resp. pol2) expressed as a polynomial modulo pol,
 and a small integer k such that al2+k*al1 is the chosen root of pol

Function: polcyclo
Class: basic
Section: polynomials
C-Name: cyclo
Prototype: LDn
Help: polcyclo(n,{v=x}): n-th cyclotomic polynomial (in variable v)

Function: poldegree
Class: basic
Section: polynomials
C-Name: poldegree
Prototype: lGDn
Help: poldegree(x,{v}): degree of the polynomial or rational function x with
 respect to main variable if v is omitted, with respect to v otherwise.
 For scalar x, return 0 is x is non-zero and a negative number otherwise
Description: 
 (pol):small	        degpol($1)
 (gen):small	        degree($1)
 (gen, var):small	poldegree($1, $2)

Function: poldisc
Class: basic
Section: polynomials
C-Name: poldisc0
Prototype: GDn
Help: poldisc(x,{v}): discriminant of the polynomial x, with respect to main
 variable if v is omitted, with respect to v otherwise
Description: 
 (pol):gen	discsr($1)
 (gen):gen	poldisc0($1, -1)
 (gen, var):gen	poldisc0($1, $2)

Function: poldiscreduced
Class: basic
Section: polynomials
C-Name: reduceddiscsmith
Prototype: G
Help: poldiscreduced(f): vector of elementary divisors of Z[a]/f'(a)Z[a],
 where a is a root of the polynomial f

Function: polgalois
Class: basic
Section: number_fields
C-Name: polgalois
Prototype: Gp
Help: polgalois(x): Galois group of the polynomial x (see manual for group
 coding). Return [n, s, k, name] where n is the order, s the signature, k the
 index and name is the GAP4 name of the transitive group.

Function: polhensellift
Class: basic
Section: polynomials
C-Name: polhensellift
Prototype: GGGL
Help: polhensellift(x, y, p, e): lift the factorization y of x modulo p to a
 factorization modulo p^e using Hensel lift. The factors in y must be
 pairwise relatively prime modulo p

Function: polinterpolate
Class: basic
Section: polynomials
C-Name: polint
Prototype: GDGDGD&
Help: polinterpolate(xa,{ya},{x},{&e}): polynomial interpolation at x
 according to data vectors xa, ya (ie return P such that P(xa[i]) = ya[i] for
 all i). If ya is omitter, return P such that P(i) = xa[i]. If present, e
 will contain an error estimate on the returned value

Function: polisirreducible
Class: basic
Section: polynomials
C-Name: gisirreducible
Prototype: G
Help: polisirreducible(x): true(1) if x is an irreducible non-constant
 polynomial, false(0) if x is reducible or constant

Function: pollead
Class: basic
Section: polynomials
C-Name: pollead
Prototype: GDn
Help: pollead(x,{v}): leading coefficient of polynomial or series x, or x
 itself if x is a scalar. Error otherwise. With respect to the main variable
 of x if v is omitted, with respect to the variable v otherwise
Description: 
 (pol):gen:copy         leading_term($1)
 (gen):gen              pollead($1, -1)
 (gen, var):gen         pollead($1, $2)

Function: pollegendre
Class: basic
Section: polynomials
C-Name: legendre
Prototype: LDn
Help: pollegendre(n,{v=x}): legendre polynomial of degree n (n C-integer),
 in variable v

Function: polrecip
Class: basic
Section: polynomials
C-Name: polrecip
Prototype: G
Help: polrecip(x): reciprocal polynomial of x

Function: polred
Class: basic
Section: number_fields
C-Name: polred0
Prototype: GD0,L,DG
Help: polred(x,{flag=0},{p}): reduction of the polynomial x (gives minimal
 polynomials only). Second and third args are optional. The following binary
 digits of flag are significant 1: partial reduction, 2: gives also elements.
 p, if present, contains the complete factorization matrix of the
 discriminant

Function: polredabs
Class: basic
Section: number_fields
C-Name: polredabs0
Prototype: GD0,L,
Help: polredabs(x,{flag=0}): a smallest generating polynomial of the number
 field for the T2 norm on the roots, with smallest index for the minimal T2
 norm. flag is optional, whose binary digit mean 1: give the element whose
 characteristic polynomial is the given polynomial. 4: give all polynomials
 of minimal T2 norm (give only one of P(x) and P(-x)). 16: partial reduction

Function: polredord
Class: basic
Section: number_fields
C-Name: ordred
Prototype: G
Help: polredord(x): reduction of the polynomial x, staying in the same order

Function: polresultant
Class: basic
Section: polynomials
C-Name: polresultant0
Prototype: GGDnD0,L,
Help: polresultant(x,y,{v},{flag=0}): resultant of the polynomials x and y,
 with respect to the main variables of x and y if v is omitted, with respect
 to the variable v otherwise. flag is optional, and can be 0: default,
 assumes that the polynomials have exact entries (uses the subresultant
 algorithm), 1 for arbitrary polynomials, using Sylvester's matrix, or 2:
 using a Ducos's modified subresultant algorithm

Function: polroots
Class: basic
Section: polynomials
C-Name: roots0
Prototype: GD0,L,p
Help: polroots(x,{flag=0}): complex roots of the polynomial x. flag is
 optional, and can be 0: default, uses Schonhage's method modified by
 Gourdon, or 1: uses a modified Newton method

Function: polrootsmod
Class: basic
Section: polynomials
C-Name: rootmod0
Prototype: GGD0,L,
Help: polrootsmod(x,p,{flag=0}): roots mod p of the polynomial x. flag is
 optional, and can be 0: default, or 1: use a naive search, useful for small
 p
Description: 
 (pol, int, ?0):vec	rootmod($1, $2)
 (pol, int, 1):vec	rootmod2($1, $2)
 (pol, int, #small):vec	$"Bad flag in polrootsmod"
 (pol, int, small):vec	rootmod0($1, $2, $3)

Function: polrootspadic
Class: basic
Section: polynomials
C-Name: rootpadic
Prototype: GGL
Help: polrootspadic(x,p,r): p-adic roots of the polynomial x to precision r

Function: polsturm
Class: basic
Section: polynomials
C-Name: sturmpart
Prototype: lGDGDG
Help: polsturm(x,{a},{b}): number of real roots of the polynomial x in the
 interval]a,b] (which are respectively taken to be -oo or +oo when omitted)

Function: polsubcyclo
Class: basic
Section: polynomials
C-Name: polsubcyclo
Prototype: LLDn
Help: polsubcyclo(n,d,{v=x}): finds an equation (in variable v) for the d-th
 degree subfields of Q(zeta_n). Output is a polynomial or a vector of
 polynomials is there are several such fields, or none.

Function: polsylvestermatrix
Class: basic
Section: polynomials
C-Name: sylvestermatrix
Prototype: GG
Help: polsylvestermatrix(x,y): forms the sylvester matrix associated to the
 two polynomials x and y. Warning: the polynomial coefficients are in
 columns, not in rows

Function: polsym
Class: basic
Section: polynomials
C-Name: polsym
Prototype: GL
Help: polsym(x,n): vector of symmetric powers of the roots of x up to n

Function: poltchebi
Class: basic
Section: polynomials
C-Name: tchebi
Prototype: LDn
Help: poltchebi(n,{v=x}): Tchebitcheff polynomial of degree n (n C-integer),
 in variable v

Function: poltschirnhaus
Class: basic
Section: number_fields
C-Name: tschirnhaus
Prototype: G
Help: poltschirnhaus(x): random Tschirnhausen transformation of the
 polynomial x

Function: polylog
Class: basic
Section: transcendental
C-Name: polylog0
Prototype: LGD0,L,p
Help: polylog(m,x,{flag=0}): m-th polylogarithm of x. flag is optional, and
 can be 0: default, 1: D_m~-modified m-th polylog of x, 2: D_m-modified m-th
 polylog of x, 3: P_m-modified m-th polylog of x

Function: polzagier
Class: basic
Section: polynomials
C-Name: polzag
Prototype: LL
Help: polzagier(n,m): Zagier's polynomials of index n,m

Function: precision
Class: basic
Section: conversions
C-Name: precision0
Prototype: GD0,L,
Help: precision(x,{n}): change the precision of x to be n (n C-integer). If
 n is omitted, output real precision of object x

Function: precprime
Class: basic
Section: number_theoretical
C-Name: gprecprime
Prototype: G
Help: precprime(x): largest pseudoprime <= x, 0 if x<=1
Description: 
 (int):int	precprime($1)
 (gen):gen	gprecprime($1)

Function: prime
Class: basic
Section: number_theoretical
C-Name: prime
Prototype: L
Help: prime(n): returns the n-th prime (n C-integer)

Function: primepi
Class: basic
Section: number_theoretical
C-Name: primepi
Prototype: G
Help: primepi(x): the prime counting function pi(x) = #{p <= x, p prime}.
Description: 
 (gen):int	primepi($1)

Function: primes
Class: basic
Section: number_theoretical
C-Name: primes
Prototype: L
Help: primes(n): returns the vector of the first n primes (n C-integer)

Function: print
Class: basic
Section: programming
C-Name: print
Prototype: vs*
Help: print(a): outputs a (in raw format) ending with newline
Description: 
 (?gen,...):void  pariprintf("${2 format_string}\n"${2 format_args})

Function: print1
Class: basic
Section: programming
C-Name: print1
Prototype: vs*
Help: print1(a): outputs a (in raw format) without ending with newline
Description: 
 (?gen,...):void  pariprintf("${2 format_string}"${2 format_args})

Function: printp
Class: basic
Section: programming
C-Name: printp
Prototype: vs*
Help: printp(a): outputs a (in beautified format) ending with newline

Function: printp1
Class: basic
Section: programming
C-Name: printp1
Prototype: vs*
Help: printp1(a): outputs a (in beautified format) without ending with
 newline

Function: printtex
Class: basic
Section: programming
C-Name: printtex
Prototype: vs*
Help: printtex(a): outputs a in TeX format

Function: prod
Class: basic
Section: sums
C-Name: produit
Prototype: V=GGEDG
Help: prod(X=a,b,expr,{x=1}): x times the product (X runs from a to b) of
 expression

Function: prodeuler
Class: basic
Section: sums
C-Name: prodeuler0
Prototype: V=GGEp
Help: prodeuler(X=a,b,expr): Euler product (X runs over the primes between a
 and b) of real or complex expression

Function: prodinf
Class: basic
Section: sums
C-Name: prodinf0
Prototype: V=GED0,L,p
Help: prodinf(X=a,expr,{flag=0}): infinite product (X goes from a to
 infinity) of real or complex expression. flag can be 0 (default) or 1, in
 which case compute the product of the 1+expr instead

Function: psdraw
Class: highlevel
Section: graphic
C-Name: postdraw_flag
Prototype: vGD0,L,
Help: psdraw(list, {flag=0}): same as plotdraw, except that the output is a
 postscript program in psfile (pari.ps by default), and flag!=0 scales the
 plot from size of the current output device to the standard postscript
 plotting size

Function: psi
Class: basic
Section: transcendental
C-Name: gpsi
Prototype: Gp
Help: psi(x): psi-function at x

Function: psploth
Class: highlevel
Section: graphic
C-Name: postploth
Prototype: V=GGIpD0,L,D0,L,
Help: psploth(X=a,b,expr,{flags=0},{n=0}): same as ploth, except that the
 output is a postscript program in psfile (pari.ps by default)

Function: psplothraw
Class: highlevel
Section: graphic
C-Name: postplothraw
Prototype: GGD0,L,
Help: psplothraw(listx,listy,{flag=0}): same as plothraw, except that the
 output is a postscript program in psfile (pari.ps by default)

Function: qfbclassno
Class: basic
Section: number_theoretical
C-Name: qfbclassno0
Prototype: GD0,L,
Help: qfbclassno(x,{flag=0}): class number of discriminant x using Shanks's
 method by default. If (optional) flag is set to 1, use Euler products

Function: qfbcompraw
Class: basic
Section: number_theoretical
C-Name: compraw
Prototype: GG
Help: qfbcompraw(x,y): Gaussian composition without reduction of the binary
 quadratic forms x and y

Function: qfbhclassno
Class: basic
Section: number_theoretical
C-Name: hclassno
Prototype: G
Help: qfbhclassno(x): Hurwitz-Kronecker class number of x>0

Function: qfbnucomp
Class: basic
Section: number_theoretical
C-Name: nucomp
Prototype: GGG
Help: qfbnucomp(x,y,l): composite of primitive positive definite quadratic
 forms x and y using nucomp and nudupl, where l=[|D/4|^(1/4)] is precomputed

Function: qfbnupow
Class: basic
Section: number_theoretical
C-Name: nupow
Prototype: GG
Help: qfbnupow(x,n): n-th power of primitive positive definite quadratic
 form x using nucomp and nudupl

Function: qfbpowraw
Class: basic
Section: number_theoretical
C-Name: powraw
Prototype: GL
Help: qfbpowraw(x,n): n-th power without reduction of the binary quadratic
 form x

Function: qfbprimeform
Class: basic
Section: number_theoretical
C-Name: primeform
Prototype: GGp
Help: qfbprimeform(x,p): returns the prime form of discriminant x, whose
 first coefficient is p

Function: qfbred
Class: basic
Section: number_theoretical
C-Name: qfbred0
Prototype: GD0,L,DGDGDG
Help: qfbred(x,{flag=0},{D},{isqrtD},{sqrtD}): reduction of the binary
 quadratic form x. All other args. are optional. D, isqrtD and sqrtD, if
 present, supply the values of the discriminant, floor(sqrt(D)) and sqrt(D)
 respectively. If D<0, its value is not used and all references to Shanks's
 distance hereafter are meaningless. flag can be any of 0: default, uses
 Shanks's distance function d; 1: use d, do a single reduction step; 2: do
 not use d; 3: do not use d, single reduction step.

Function: qfbsolve
Class: basic
Section: number_theoretical
C-Name: qfbsolve
Prototype: GG
Help: qfbsolve(Q,p): Return [x,y] so that Q(x,y)=p where Q is a binary
 quadratic form and p a prime number, or 0 if there is no solution.

Function: qfgaussred
Class: basic
Section: linear_algebra
C-Name: sqred
Prototype: G
Help: qfgaussred(x): square reduction of the (symmetric) matrix x (returns a
 square matrix whose i-th diagonal term is the coefficient of the i-th square
 in which the coefficient of the i-th variable is 1)

Function: qfjacobi
Class: basic
Section: linear_algebra
C-Name: jacobi
Prototype: Gp
Help: qfjacobi(x): eigenvalues and orthogonal matrix of eigenvectors of the
 real symmetric matrix x

Function: qflll
Class: basic
Section: linear_algebra
C-Name: qflll0
Prototype: GD0,L,p
Help: qflll(x,{flag=0}): LLL reduction of the vectors forming the matrix x
 (gives the unimodular transformation matrix). The columns of x must be
 linearly independent, unless specified otherwise below. flag is optional, 
 and can be 0: default, 1: assumes x is integral, columns may be dependent, 2:
 assumes x is integral, returns a partially reduced basis, 4: assumes x is 
 integral, returns [K,I] where K is the integer kernel of x and I the LLL
 reduced image, 5: same as 4 but x may have polynomial coefficients, 8: same
 as 0 but x may have polynomial coefficients
Description: 
 (vec, ?0):vec:prec	lll($1, prec)
 (vec, 1):vec	lllint($1)
 (vec, 2):vec	lllintpartial($1)
 (vec, 4):vec	lllkerim($1)
 (vec, 5):vec	lllkerimgen($1)
 (vec, 8):vec	lllgen($1)
 (vec, #small):vec	$"Bad flag in qflll"
 (vec, small):vec:prec	qflll0($1, $2, prec)

Function: qflllgram
Class: basic
Section: linear_algebra
C-Name: qflllgram0
Prototype: GD0,L,p
Help: qflllgram(x,{flag=0}): LLL reduction of the lattice whose gram matrix
 is x (gives the unimodular transformation matrix). flag is optional and can
 be 0: default,1: lllgramint algorithm for integer matrices, 4: lllgramkerim
 giving the kernel and the LLL reduced image, 5: lllgramkerimgen same when
 the matrix has polynomial coefficients, 8: lllgramgen, same as qflllgram
 when the coefficients are polynomials

Function: qfminim
Class: basic
Section: linear_algebra
C-Name: qfminim0
Prototype: GDGDGD0,L,p
Help: qfminim(x,{bound},{maxnum},{flag=0}): number of vectors of square norm <=
 bound, maximum norm and list of vectors for the integral and definite
 quadratic form x; minimal non-zero vectors if bound=0. flag is optional, and
 can be 0: default; 1: returns the first minimal vector found (ignore
 maxnum); 2: as 0 but uses a more robust, slower implementation, valid for
 non integral quadratic forms

Function: qfperfection
Class: basic
Section: linear_algebra
C-Name: perf
Prototype: G
Help: qfperfection(a): rank of matrix of xx~ for x minimal vectors of a gram
 matrix a

Function: qfrep
Class: basic
Section: linear_algebra
C-Name: qfrep0
Prototype: GGD0,L,
Help: qfrep(x,B,{flag=0}): vector of (half) the number of vectors of norms
 from 1 to B for the integral and definite quadratic form x. Binary digits of
 flag mean 1: count vectors of even norm from 1 to 2B, 2: return a t_VECSMALL
 instead of a t_VEC

Function: qfsign
Class: basic
Section: linear_algebra
C-Name: signat
Prototype: G
Help: qfsign(x): signature of the symmetric matrix x

Function: quadclassunit
Class: basic
Section: number_theoretical
C-Name: quadclassunit0
Prototype: GD0,L,DGp
Help: quadclassunit(D,{flag=0},{tech=[]}): compute the structure of the
 class group and the regulator of the quadratic field of discriminant D. If
 flag is non-null (and D>0), compute the narrow class group. See manual for
 the optional technical parameters

Function: quaddisc
Class: basic
Section: number_theoretical
C-Name: quaddisc
Prototype: G
Help: quaddisc(x): discriminant of the quadratic field Q(sqrt(x))

Function: quadgen
Class: basic
Section: number_theoretical
C-Name: quadgen
Prototype: G
Help: quadgen(x): standard generator of quadratic order of discriminant x

Function: quadhilbert
Class: basic
Section: number_theoretical
C-Name: quadhilbert
Prototype: GDGp
Help: quadhilbert(D,{pq}): relative equation for the Hilbert class field
 of the quadratic field of discriminant D (which can also be a bnf).
 If D<0, pq (if supplied) is a 2-component vector [p,q], where p,q are the
 prime numbers needed for Schertz's method. In that case, return 0 if [p,q]
 not suitable.

Function: quadpoly
Class: basic
Section: number_theoretical
C-Name: quadpoly0
Prototype: GDn
Help: quadpoly(D,{v=x}): quadratic polynomial corresponding to the
 discriminant D, in variable v

Function: quadray
Class: basic
Section: number_theoretical
C-Name: quadray
Prototype: GGDGp
Help: quadray(D,f,{lambda}): relative equation for the ray class field of
 conductor f for the quadratic field of discriminant D (which can also be a
 bnf). For D < 0, lambda (if supplied) is the technical element of bnf 
 necessary for Schertz's method. In that case, return 0 if lambda is not
 suitable.

Function: quadregulator
Class: basic
Section: number_theoretical
C-Name: gregula
Prototype: Gp
Help: quadregulator(x): regulator of the real quadratic field of
 discriminant x
Description: 
 (int):mp:prec	regula($1, prec)
 (gen):gen:prec	gregula($1, prec)

Function: quadunit
Class: basic
Section: number_theoretical
C-Name: gfundunit
Prototype: Gp
Help: quadunit(x): fundamental unit of the quadratic field of discriminant x
 where x must be positive
Description: 
 (int):gen	fundunit($1)
 (gen):gen	gfundunit($1)

Function: quit
Class: gp
Section: programming
C-Name: gp_quit
Prototype: v
Help: quit(): quits GP and return to the system

Function: random
Class: basic
Section: conversions
C-Name: genrand
Prototype: DG
Help: random({N=2^31}): random integer between 0 and N-1
Description: 
 (?int):int	genrand($1)
 (real):void	$"incorrect type `real' in random"

Function: read
Class: gp
Section: programming
C-Name: read0
Prototype: D"",s,
Help: read({filename}): read from the input file filename. If filename is
 omitted, reread last input file, be it from read() or \r
Description: 
 (str):gen      gp_read_file($1)

Function: readvec
Class: basic
Section: programming
C-Name: gp_readvec_file
Prototype: D"",s,
Help: readvec({filename}): create a vector whose components are the evaluation
 of all the expressions found in the input file filename
Description: 
 (str):gen      gp_readvec_file($1)

Function: real
Class: basic
Section: conversions
C-Name: greal
Prototype: G
Help: real(x): real part of x

Function: removeprimes
Class: basic
Section: number_theoretical
C-Name: removeprimes
Prototype: DG
Help: removeprimes({x=[]}): remove primes in the vector x (with at most 100
 components) from the prime table. x can also be a single integer. List the
 current extra primes if x is omitted

Function: reorder
Class: basic
Section: programming
C-Name: reorder
Prototype: DG
Help: reorder({x=[]}): reorder the variables for output according to the
 vector x. If x is void or omitted, print the current list of variables

Function: return
Class: basic
Section: programming
C-Name: return0
Prototype: DG
Help: return({x=0}): return from current subroutine with result x

Function: rnfalgtobasis
Class: basic
Section: number_fields
C-Name: rnfalgtobasis
Prototype: GG
Help: rnfalgtobasis(rnf,x): relative version of nfalgtobasis, where rnf is a
 relative numberfield

Function: rnfbasis
Class: basic
Section: number_fields
C-Name: rnfbasis
Prototype: GG
Help: rnfbasis(bnf,order): given an order as output by rnfpseudobasis or
 rnfsteinitz, gives either a basis of the order if it is free, or an
 n+1-element generating set

Function: rnfbasistoalg
Class: basic
Section: number_fields
C-Name: rnfbasistoalg
Prototype: GG
Help: rnfbasistoalg(rnf,x): relative version of nfbasistoalg, where rnf is a
 relative numberfield

Function: rnfcharpoly
Class: basic
Section: number_fields
C-Name: rnfcharpoly
Prototype: GGGDn
Help: rnfcharpoly(nf,T,alpha,{var=x}): characteristic polynomial of alpha
 over nf, where alpha belongs to the algebra defined by T over nf. Returns a
 polynomial in variable var (x by default)

Function: rnfconductor
Class: basic
Section: number_fields
C-Name: rnfconductor
Prototype: GGD0,L,
Help: rnfconductor(bnf,polrel,{flag=0}): conductor of the Abelian extension
 of bnf defined by polrel. The result is [conductor,rayclassgroup,subgroup],
 where conductor is the conductor itself, rayclassgroup the structure of the
 corresponding full ray class group, and subgroup the HNF defining the norm
 group (Artin or Takagi group) on the given generators rayclassgroup[3]. If
 flag is non-zero, check that polrel indeed defines an Abelian extension

Function: rnfdedekind
Class: basic
Section: number_fields
C-Name: rnfdedekind
Prototype: GGG
Help: rnfdedekind(nf,T,pr): relative Dedekind criterion over nf, applied to
 the order defined by a root of irreducible polynomial T, modulo the prime
 ideal pr. Returns [flag,basis,val], where basis is a pseudo-basis of the
 enlarged order, flag is 1 iff this order is pr-maximal, and val is the
 valuation in pr of the order discriminant

Function: rnfdet
Class: basic
Section: number_fields
C-Name: rnfdet
Prototype: GG
Help: rnfdet(nf,order): given a pseudomatrix, compute its pseudodeterminant

Function: rnfdisc
Class: basic
Section: number_fields
C-Name: rnfdiscf
Prototype: GG
Help: rnfdisc(nf,pol): given a pol with coefficients in nf, gives a
 2-component vector [D,d], where D is the relative ideal discriminant, and d
 is the relative discriminant in nf^*/nf*^2

Function: rnfeltabstorel
Class: basic
Section: number_fields
C-Name: rnfelementabstorel
Prototype: GG
Help: rnfeltabstorel(rnf,x): transforms the element x from absolute to
 relative representation

Function: rnfeltdown
Class: basic
Section: number_fields
C-Name: rnfelementdown
Prototype: GG
Help: rnfeltdown(rnf,x): expresses x on the base field if possible; returns
 an error otherwise

Function: rnfeltreltoabs
Class: basic
Section: number_fields
C-Name: rnfelementreltoabs
Prototype: GG
Help: rnfeltreltoabs(rnf,x): transforms the element x from relative to
 absolute representation

Function: rnfeltup
Class: basic
Section: number_fields
C-Name: rnfelementup
Prototype: GG
Help: rnfeltup(rnf,x): expresses x (belonging to the base field) on the
 relative field

Function: rnfequation
Class: basic
Section: number_fields
C-Name: rnfequation0
Prototype: GGD0,L,
Help: rnfequation(nf,pol,{flag=0}): given a pol with coefficients in nf,
 gives the absolute equation apol of the number field defined by pol. flag is
 optional, and can be 0: default, or non-zero, gives [apol,th], where th
 expresses the root of nf.pol in terms of the root of apol

Function: rnfhnfbasis
Class: basic
Section: number_fields
C-Name: rnfhnfbasis
Prototype: GG
Help: rnfhnfbasis(bnf,order): given an order as output by rnfpseudobasis,
 gives either a true HNF basis of the order if it exists, zero otherwise

Function: rnfidealabstorel
Class: basic
Section: number_fields
C-Name: rnfidealabstorel
Prototype: GG
Help: rnfidealabstorel(rnf,x): transforms the ideal x from absolute to
 relative representation

Function: rnfidealdown
Class: basic
Section: number_fields
C-Name: rnfidealdown
Prototype: GG
Help: rnfidealdown(rnf,x): finds the intersection of the ideal x with the
 base field

Function: rnfidealhnf
Class: basic
Section: number_fields
C-Name: rnfidealhermite
Prototype: GG
Help: rnfidealhnf(rnf,x): relative version of idealhnf, where rnf is a
 relative numberfield

Function: rnfidealmul
Class: basic
Section: number_fields
C-Name: rnfidealmul
Prototype: GGG
Help: rnfidealmul(rnf,x,y): relative version of idealmul, where rnf is a
 relative numberfield

Function: rnfidealnormabs
Class: basic
Section: number_fields
C-Name: rnfidealnormabs
Prototype: GG
Help: rnfidealnormabs(rnf,x): absolute norm of the ideal x

Function: rnfidealnormrel
Class: basic
Section: number_fields
C-Name: rnfidealnormrel
Prototype: GG
Help: rnfidealnormrel(rnf,x): relative norm of the ideal x

Function: rnfidealreltoabs
Class: basic
Section: number_fields
C-Name: rnfidealreltoabs
Prototype: GG
Help: rnfidealreltoabs(rnf,x): transforms the ideal x from relative to
 absolute representation

Function: rnfidealtwoelt
Class: basic
Section: number_fields
C-Name: rnfidealtwoelement
Prototype: GG
Help: rnfidealtwoelt(rnf,x): relative version of idealtwoelt, where rnf
 is a relative numberfield

Function: rnfidealup
Class: basic
Section: number_fields
C-Name: rnfidealup
Prototype: GG
Help: rnfidealup(rnf,x): lifts the ideal x (of the base field) to the
 relative field

Function: rnfinit
Class: basic
Section: number_fields
C-Name: rnfinitalg
Prototype: GGp
Help: rnfinit(nf,pol): pol being a non constant irreducible polynomial
 defined over the number field nf, initializes a vector of data necessary for
 working in relative number fields (rnf functions). See manual for technical
 details

Function: rnfisfree
Class: basic
Section: number_fields
C-Name: rnfisfree
Prototype: lGG
Help: rnfisfree(bnf,order): given an order as output by rnfpseudobasis or
 rnfsteinitz, outputs true (1) or false (0) according to whether the order is
 free or not

Function: rnfisnorm
Class: basic
Section: number_fields
C-Name: rnfisnorm
Prototype: GGD0,L,
Help: rnfisnorm(T,x,{flag=0}): T is as output by rnfisnorminit applied to
 L/K. Tries to tell whether x is a norm from L/K. Returns a vector [a,b]
 where x=Norm(a)*b. Looks for a solution which is a S-integer, with S a list
 of places in K containing the ramified primes, generators of the class group
 of ext, as well as those primes dividing x. If L/K is Galois, omit flag,
 otherwise it is used to add more places to S: all the places above the
 primes p <= flag (resp. p | flag) if flag > 0 (resp. flag < 0). The answer
 is guaranteed (i.e x norm iff b=1) if L/K is Galois or, under GRH, if S
 contains all primes less than 12.log(disc(M))^2, where M is the normal
 closure of L/K

Function: rnfisnorminit
Class: basic
Section: number_fields
C-Name: rnfisnorminit
Prototype: GGD2,L,
Help: rnfisnorminit(pol,polrel,{flag=2}): let K be defined by a root of pol,
 L/K the extension defined by polrel. Compute technical data needed by
 rnfisnorm to solve norm equations Nx = a, for x in L, and a in K. If flag=0,
 do not care whether L/K is Galois or not; if flag = 1, assume L/K is Galois;
 if flag = 2, determine whether L/K is Galois

Function: rnfkummer
Class: basic
Section: number_fields
C-Name: rnfkummer
Prototype: GDGD0,L,p
Help: rnfkummer(bnr,{subgroup},{deg=0}): bnr being as output by bnrinit,
 finds a relative equation for the class field corresponding to the module in
 bnr and the given congruence subgroup (the ray class field if subgroup is
 omitted). deg can be zero (default), or positive, and in this case the
 output is the list of all relative equations of degree deg for the given bnr

Function: rnflllgram
Class: basic
Section: number_fields
C-Name: rnflllgram
Prototype: GGGp
Help: rnflllgram(nf,pol,order): given a pol with coefficients in nf and an
 order as output by rnfpseudobasis or similar, gives [[neworder],U], where
 neworder is a reduced order and U is the unimodular transformation matrix

Function: rnfnormgroup
Class: basic
Section: number_fields
C-Name: rnfnormgroup
Prototype: GG
Help: rnfnormgroup(bnr,polrel): norm group (or Artin or Takagi group)
 corresponding to the Abelian extension of bnr.bnf defined by polrel, where
 the module corresponding to bnr is assumed to be a multiple of the
 conductor. The result is the HNF defining the norm group on the given
 generators in bnr[5][3]

Function: rnfpolred
Class: basic
Section: number_fields
C-Name: rnfpolred
Prototype: GGp
Help: rnfpolred(nf,pol): given a pol with coefficients in nf, finds a list
 of relative polynomials defining some subfields, hopefully simpler

Function: rnfpolredabs
Class: basic
Section: number_fields
C-Name: rnfpolredabs
Prototype: GGD0,L,
Help: rnfpolredabs(nf,pol,{flag=0}): given a pol with coefficients in nf,
 finds a relative simpler polynomial defining the same field. Binary digits
 of flag mean: 1: return also the element whose characteristic polynomial is
 the given polynomial, 2: return an absolute polynomial, 16: partial
 reduction

Function: rnfpseudobasis
Class: basic
Section: number_fields
C-Name: rnfpseudobasis
Prototype: GG
Help: rnfpseudobasis(nf,pol): given a pol with coefficients in nf, gives a
 4-component vector [A,I,D,d] where [A,I] is a pseudo basis of the maximal
 order in HNF on the power basis, D is the relative ideal discriminant, and d
 is the relative discriminant in nf^*/nf*^2

Function: rnfsteinitz
Class: basic
Section: number_fields
C-Name: rnfsteinitz
Prototype: GG
Help: rnfsteinitz(nf,order): given an order as output by rnfpseudobasis,
 gives [A,I,D,d] where (A,I) is a pseudo basis where all the ideals except
 perhaps the last are trivial

Function: round
Class: basic
Section: conversions
C-Name: round0
Prototype: GD&
Help: round(x,{&e}): take the nearest integer to all the coefficients of x.
 If e is present, do not take into account loss of integer part precision,
 and set e = error estimate in bits
Description: 
 (small):small:parens   $1
 (int):int:copy:parens  $1
 (real):int             roundr($1)
 (mp):int               mpround($1)
 (mp, &small):int       grndtoi($1, &$2)
 (mp, &int):int         round0($1, &$2)
 (gen):gen              ground($1)
 (gen, &small):gen      grndtoi($1, &$2)
 (gen, &int):gen        round0($1, &$2)

Function: serconvol
Class: basic
Section: polynomials
C-Name: convol
Prototype: GG
Help: serconvol(x,y): convolution (or Hadamard product) of two power series

Function: serlaplace
Class: basic
Section: polynomials
C-Name: laplace
Prototype: G
Help: serlaplace(x): replaces the power series sum of a_n*x^n/n! by sum of
 a_n*x^n. For the reverse operation, use serconvol(x,exp(X))

Function: serreverse
Class: basic
Section: polynomials
C-Name: recip
Prototype: G
Help: serreverse(x): reversion of the power series x

Function: setintersect
Class: basic
Section: linear_algebra
C-Name: setintersect
Prototype: GG
Help: setintersect(x,y): intersection of the sets x and y
Description: 
 (vec, vec):vec	setintersect($1, $2)

Function: setisset
Class: basic
Section: linear_algebra
C-Name: setisset
Prototype: lG
Help: setisset(x): true(1) if x is a set (row vector with strictly
 increasing entries), false(0) if not

Function: setminus
Class: basic
Section: linear_algebra
C-Name: setminus
Prototype: GG
Help: setminus(x,y): set of elements of x not belonging to y
Description: 
 (vec, vec):vec	setminus($1, $2)

Function: setrand
Class: basic
Section: programming
C-Name: setrand
Prototype: lL
Help: setrand(n): reset the seed of the random number generator to n

Function: setsearch
Class: basic
Section: linear_algebra
C-Name: setsearch
Prototype: lGGD0,L,
Help: setsearch(x,y,{flag=0}): looks if y belongs to the set x. If flag is 0
 or omitted, returns 0 if it is not, otherwise returns the index j such that
 y==x[j]. If flag is non-zero, return 0 if y belongs to x, otherwise the
 index j where it should be inserted

Function: setunion
Class: basic
Section: linear_algebra
C-Name: setunion
Prototype: GG
Help: setunion(x,y): union of the sets x and y
Description: 
 (vec, vec):vec	setunion($1, $2)

Function: shift
Class: basic
Section: operators
C-Name: gshift
Prototype: GL
Help: shift(x,n): shift x left n bits if n>=0, right -n bits if
 n<0.

Function: shiftmul
Class: basic
Section: operators
C-Name: gmul2n
Prototype: GL
Help: shiftmul(x,n): multiply x by 2^n (n>=0 or n<0)

Function: sigma
Class: basic
Section: number_theoretical
C-Name: gsumdivk
Prototype: GD1,L,
Help: sigma(x,{k=1}): sum of the k-th powers of the divisors of x. k is
 optional and if omitted is assumed to be equal to 1
Description: 
 (int, ?1):int	sumdiv($1)
 (int, 0):int	numbdiv($1)
 (gen, ?1):gen	gsumdiv($1)
 (gen, 0):gen	gnumbdiv($1)
 (int, small):int	sumdivk($1, $2)
 (gen, small):gen	gsumdivk($1, $2)

Function: sign
Class: basic
Section: operators
C-Name: gsigne
Prototype: iG
Help: sign(x): sign of x, of type integer, real or fraction
Description: 
 (mp):small          signe($1)
 (gen):small        gsigne($1)

Function: simplify
Class: basic
Section: conversions
C-Name: simplify
Prototype: G
Help: simplify(x): simplify the object x as much as possible

Function: sin
Class: basic
Section: transcendental
C-Name: gsin
Prototype: Gp
Help: sin(x): sine of x

Function: sinh
Class: basic
Section: transcendental
C-Name: gsh
Prototype: Gp
Help: sinh(x): hyperbolic sine of x

Function: sizebyte
Class: basic
Section: conversions
C-Name: taille2
Prototype: lG
Help: sizebyte(x): number of bytes occupied by the complete tree of the
 object x

Function: sizedigit
Class: basic
Section: conversions
C-Name: sizedigit
Prototype: lG
Help: sizedigit(x): maximum number of decimal digits minus one of (the
 coefficients of) x

Function: solve
Class: basic
Section: sums
C-Name: zbrent0
Prototype: V=GGEp
Help: solve(X=a,b,expr): real root of expression expr (X between a and b),
 where expr(a)*expr(b)<=0

Function: sqr
Class: basic
Section: transcendental
C-Name: gsqr
Prototype: G
Help: sqr(x): square of x. NOT identical to x*x
Description: 
 (int):int	sqri($1)
 (mp):mp	gsqr($1)
 (gen):gen	gsqr($1)

Function: sqrt
Class: basic
Section: transcendental
C-Name: gsqrt
Prototype: Gp
Help: sqrt(x): square root of x
Description: 
 (real):gen           sqrtr($1)
 (gen):gen:prec       gsqrt($1, prec)

Function: sqrtint
Class: basic
Section: number_theoretical
C-Name: racine
Prototype: G
Help: sqrtint(x): integer square root of x (x integer)
Description: 
 (gen):int racine($1)

Function: sqrtn
Class: basic
Section: transcendental
C-Name: gsqrtn
Prototype: GGD&p
Help: sqrtn(x,n,{&z}): nth-root of x, n must be integer. If present, z is
 set to a suitable root of unity to recover all solutions. If it was not
 possible, z is set to zero

Function: subgrouplist
Class: basic
Section: number_fields
C-Name: subgrouplist0
Prototype: GDGD0,L,
Help: subgrouplist(bnr,{bound},{flag=0}): bnr being as output by bnrinit or
 a list of cyclic components of a finite Abelian group G, outputs the list of
 subgroups of G (of index bounded by bound, if not omitted), given as HNF
 left divisors of the SNF matrix corresponding to G. If flag=0 (default) and
 bnr is as output by bnrinit, gives only the subgroups for which the modulus
 is the conductor

Function: subst
Class: basic
Section: polynomials
C-Name: gsubst
Prototype: GnG
Help: subst(x,y,z): in expression x, replace the variable y by the
 expression z

Function: substpol
Class: basic
Section: polynomials
C-Name: gsubstpol
Prototype: GGG
Help: substpol(x,y,z): in expression x, replace the polynomial y by the
 expression z, using remainder decomposition of x.

Function: substvec
Class: basic
Section: polynomials
C-Name: gsubstvec
Prototype: GGG
Help: substvec(x,v,w): in expression x, make a best effort to replace the
 variables v1,...,vn by the expression w1,...,wn

Function: sum
Class: basic
Section: sums
C-Name: somme
Prototype: V=GGEDG
Help: sum(X=a,b,expr,{x=0}): x plus the sum (X goes from a to b) of
 expression expr

Function: sumalt
Class: basic
Section: sums
C-Name: sumalt0
Prototype: V=GED0,L,p
Help: sumalt(X=a,expr,{flag=0}): Cohen-Villegas-Zagier's acceleration of
 alternating series expr, X starting at a. flag is optional, and can be 0:
 default, or 1: uses a slightly different method using Zagier's polynomials

Function: sumdiv
Class: basic
Section: sums
C-Name: divsum
Prototype: GVE
Help: sumdiv(n,X,expr): sum of expression expr, X running over the divisors
 of n

Function: suminf
Class: basic
Section: sums
C-Name: suminf0
Prototype: V=GEp
Help: suminf(X=a,expr): infinite sum (X goes from a to infinity) of real or
 complex expression expr

Function: sumnum
Class: basic
Section: sums
C-Name: sumnum0
Prototype: V=GGEDGD0,L,p
Help: sumnum(X=a,sig,expr,{tab},{flag=0}): numerical summation of expr from 
 X = ceiling(a) to +infinity. sig is either a scalar or a two-component vector
 coding the function's decrease rate at infinity. It is assumed that the
 scalar part of sig is to the right of all poles of expr. If present, tab
 must be initialized by sumnuminit. If flag is nonzero, assumes that
 conj(expr(z)) = expr(conj(z)).

Function: sumnumalt
Class: basic
Section: sums
C-Name: sumnumalt0
Prototype: V=GGEDGD0,L,p
Help: sumnumalt(X=a,sig,s,{tab},{flag=0}): numerical summation of (-1)^X s
 from X = ceiling(a) to +infinity. Note that the (-1)^X must not be included.
 sig is either a scalar or a two-component vector coded as in intnum, and the 
 scalar part is larger than all the real parts of the poles of s. Uses intnum,
 hence tab is as in intnum. If flag is nonzero, assumes that the function to 
 be summed satisfies conj(f(z))=f(conj(z)), and then up to twice faster.

Function: sumnuminit
Class: basic
Section: sums
C-Name: sumnuminit
Prototype: GD0,L,D1,L,p
Help: sumnuminit(sig, {m=0}, {sgn=1}): initialize tables for numerical
 summation. sgn is 1 (in fact >= 0), the default, for sumnum (ordinary sums) 
 or -1 (in fact < 0) for sumnumalt (alternating sums). sig is as in sumnum and
 m is as in intnuminit.

Function: sumpos
Class: basic
Section: sums
C-Name: sumpos0
Prototype: V=GED0,L,p
Help: sumpos(X=a,expr,{flag=0}): sum of positive series expr, the formal
 variable X starting at a. flag is optional, and can be 0: default, or 1:
 uses a slightly different method using Zagier's polynomials

Function: system
Class: gp
Section: programming
C-Name: system0
Prototype: vs
Help: system(a): a being a string, execute the system command a (not valid
 on every machine)

Function: tan
Class: basic
Section: transcendental
C-Name: gtan
Prototype: Gp
Help: tan(x): tangent of x

Function: tanh
Class: basic
Section: transcendental
C-Name: gth
Prototype: Gp
Help: tanh(x): hyperbolic tangent of x

Function: taylor
Class: basic
Section: polynomials
C-Name: tayl
Prototype: GnP
Help: taylor(x,y): taylor expansion of x with respect to the main variable
 of y

Function: teichmuller
Class: basic
Section: transcendental
C-Name: teich
Prototype: G
Help: teichmuller(x): teichmuller character of p-adic number x

Function: theta
Class: basic
Section: transcendental
C-Name: theta
Prototype: GGp
Help: theta(q,z): Jacobi sine theta-function

Function: thetanullk
Class: basic
Section: transcendental
C-Name: thetanullk
Prototype: GLp
Help: thetanullk(q,k): k'th derivative at z=0 of theta(q,z)

Function: thue
Class: basic
Section: polynomials
C-Name: thue
Prototype: GGDG
Help: thue(tnf,a,{sol}): solve the equation P(x,y)=a, where tnf was created
 with thueinit(P), and sol, if present, contains the solutions of Norm(x)=a
 modulo units in the number field defined by P. If tnf was computed without
 assuming GRH (flag 1 in thueinit), the result is unconditional

Function: thueinit
Class: basic
Section: polynomials
C-Name: thueinit
Prototype: GD0,L,p
Help: thueinit(P,{flag=0}): initialize the tnf corresponding to P, that will
 be used to solve Thue equations P(x,y) = some-integer. If flag is non-zero,
 certify the result unconditionnaly. Otherwise, assume GRH (much faster of
 course)

Function: trace
Class: basic
Section: linear_algebra
C-Name: gtrace
Prototype: G
Help: trace(x): trace of x

Function: trap
Class: basic
Section: programming
C-Name: trap0
Prototype: D"",r,DIDI
Help: trap({err}, {rec}, {seq}): try to execute seq, trapping error err (all
 of them if err ommitted); sequence rec is executed if the error occurs and
 is the result of the command. When seq is omitted, define rec as a default
 handler for error err (a break loop will be started if rec omitted). If rec
 is the empty string "" pop out the last default handler

Function: truncate
Class: basic
Section: conversions
C-Name: trunc0
Prototype: GD&
Help: truncate(x,{&e}): truncation of x; when x is a power series,take away
 the O(X^). If e is present, do not take into account loss of integer part
 precision, and set e = error estimate in bits
Description: 
 (small):small:parens   $1
 (int):int:copy:parens  $1
 (real):int             truncr($1)
 (mp):int               mptrunc($1)
 (mp, &small):int       gcvtoi($1, &$2)
 (mp, &int):int         trunc0($1, &$2)
 (gen):gen              gtrunc($1)
 (gen, &small):gen      gcvtoi($1, &$2)
 (gen, &int):gen        trunc0($1, &$2)

Function: type
Class: basic
Section: programming
C-Name: type0
Prototype: G
Help: type(x): return the type of the GEN x.
Description: 
 (gen):typ              typ($1)

Function: unclone
Class: gp2c
Description: 
 (small):void   (void)0 /*unclone*/
 (gen):void     gunclone($1)

Function: until
Class: basic
Section: programming
Help: until(a,seq): evaluate the expression sequence seq until a is nonzero

Function: valuation
Class: basic
Section: conversions
C-Name: ggval
Prototype: lGG
Help: valuation(x,p): valuation of x with respect to p

Function: variable
Class: basic
Section: conversions
C-Name: gpolvar
Prototype: G
Help: variable(x): main variable of object x. Gives p for p-adic x, error
 for scalars
Description: 
 (pol):var:parens:copy	$var:1
 (gen):gen	gpolvar($1)

Function: vecextract
Class: basic
Section: linear_algebra
C-Name: extract0
Prototype: GGDG
Help: vecextract(x,y,{z}): extraction of the components of the matrix or
 vector x according to y and z. If z is omitted, y designs columns, otherwise
 y corresponds to rows and z to columns. y and z can be vectors (of indices),
 strings (indicating ranges as in "1..10") or masks (integers whose binary
 representation indicates the indices to extract, from left to right 1, 2, 4,
 8, etc.)

Function: vecmax
Class: basic
Section: operators
C-Name: vecmax
Prototype: G
Help: vecmax(x): maximum of the elements of the vector/matrix x

Function: vecmin
Class: basic
Section: operators
C-Name: vecmin
Prototype: G
Help: vecmin(x): minimum of the elements of the vector/matrix x

Function: vecsort
Class: basic
Section: linear_algebra
C-Name: vecsort0
Prototype: GDGD0,L,
Help: vecsort(x,{k},{flag=0}): sorts the vector of vectors (or matrix) x in
 ascending order, according to the value of its k-th component if k is not
 omitted. Binary digits of flag (if present) mean: 1: indirect sorting,
 return the permutation instead of the permuted vector, 2: sort using
 lexicographic order, 4: use descending instead of ascending order
Description: 
 (vec):vec	sort($1)
 (vec, gen):vec	vecsort0($1, $2, 0)
 (vec, , 0):vec	sort($1)
 (vec, , 1):vec	indexsort($1)
 (vec, , 2):vec	lexsort($1)
 (vec, , small):vec	vecsort0($1, NULL, $3)
 (vec, gen, small):vec	vecsort0($1, $2, $3)

Function: vector
Class: basic
Section: linear_algebra
C-Name: vecteur
Prototype: GDVDI
Help: vector(n,{X},{expr=0}): row vector with n components of expression
 expr (X ranges from 1 to n). By default, fill with 0s

Function: vectorsmall
Class: basic
Section: linear_algebra
C-Name: vecteursmall
Prototype: GDVDI
Help: vectorsmall(n,{X},{expr=0}): VECSMALL with n components of expression
 expr (X ranges from 1 to n) which must be small integers. By default, fill
 with 0s

Function: vectorv
Class: basic
Section: linear_algebra
C-Name: vvecteur
Prototype: GDVDI
Help: vectorv(n,{X},{expr=0}): column vector with n components of expression
 expr (X ranges from 1 to n). By default, fill with 0s

Function: version
Class: gp
Section: programming
C-Name: pari_version
Prototype: 
Help: version(): returns the PARI version as [major,minor,patch]
 'status'
Doc: Returns the current version number as a \typ{VEC} with three integer
 components: major version number, minor version number and patchlevel.
 To check against a particular version number, you can use:
 \bprog
 if (lex(version(), [2,2,0]) >= 0,
 \\ code to be executed if we are running 2.2.0 or more recent.
 ,
 \\ compatibility code
 );
 @eprog

Function: weber
Class: basic
Section: transcendental
C-Name: weber0
Prototype: GD0,L,p
Help: weber(x,{flag=0}): One of Weber's f function of x. flag is optional,
 and can be 0: default, function f(x)=exp(-i*Pi/24)*eta((x+1)/2)/eta(x) such
 that (j=(f^24-16)^3/f^24), 1: function f1(x)=eta(x/2)/eta(x) such that
 (j=(f1^24+16)^3/f2^24), 2: function f2(x)=sqrt(2)*eta(2*x)/eta(x) such that
 (j=(f2^24+16)^3/f2^24)

Function: whatnow
Class: gp
Section: programming
C-Name: whatnow0
Prototype: vr
Help: whatnow(fun): if fun was present in GP version 1.39.15 or lower, gives
 the new function name
Description: 
 (str):void             whatnow($1, 0)

Function: while
Class: basic
Section: programming
Help: while(a,seq): while a is nonzero evaluate the expression sequence seq.
 Otherwise 0

Function: write
Class: basic
Section: programming
C-Name: write0
Prototype: vss*
Help: write(filename,a): write the string expression a (same output as
 print) to filename

Function: write1
Class: basic
Section: programming
C-Name: write1
Prototype: vss*
Help: write1(filename,a): write the string expression a (same output as
 print1) to filename

Function: writebin
Class: basic
Section: programming
C-Name: gpwritebin
Prototype: vsDG
Help: writebin(filename,{x}): write x as a binary object to file filename.
 If x is omitted, write all session variables

Function: writetex
Class: basic
Section: programming
C-Name: writetex
Prototype: vss*
Help: writetex(filename,a): write the string expression a (same format as
 print) to filename, in TeX format

Function: zeta
Class: basic
Section: transcendental
C-Name: gzeta
Prototype: Gp
Help: zeta(s): Riemann zeta function at s with s a complex or a p-adic number

Function: zetak
Class: basic
Section: number_fields
C-Name: gzetakall
Prototype: GGD0,L,p
Help: zetak(nfz,s,{flag=0}): Dedekind zeta function of the number field nfz
 at s, where nfz is the vector computed by zetakinit (NOT by nfinit) flag is
 optional, and can be 0: default, compute zetak, or non-zero: compute the
 lambdak function, i.e. with the gamma factors

Function: zetakinit
Class: basic
Section: number_fields
C-Name: initzeta
Prototype: Gp
Help: zetakinit(x): compute number field information necessary to use zetak,
 where x is an irreducible polynomial

Function: zncoppersmith
Class: basic
Section: number_theoretical
C-Name: zncoppersmith
Prototype: GGGDG
Help: zncoppersmith(P, N, X, {B=N}): finds all integers x0
 with |x0| <= X such that  gcd(N, P(x0)) > B. X should be smaller than
 exp((log B)^2 / (deg(P) log N)).

Function: znlog
Class: basic
Section: number_theoretical
C-Name: znlog
Prototype: GG
Help: znlog(x,g): g as output by znprimroot (modulo a prime). Return
 smallest non-negative n such that g^n = x

Function: znorder
Class: basic
Section: number_theoretical
C-Name: znorder
Prototype: GDG
Help: znorder(x,{o}): order of the integermod x in (Z/nZ)*. Optional o is
 assumed to be a multiple of the order.
Description: 
 (gen):int             order($1)
 (gen,):int            order($1)
 (gen,int):int         znorder($1, $2)

Function: znprimroot
Class: basic
Section: number_theoretical
C-Name: ggener
Prototype: G
Help: znprimroot(n): returns a primitive root of n when it exists
Description: 
 (int):gen	gener($1)
 (gen):gen	ggener($1)

Function: znstar
Class: basic
Section: number_theoretical
C-Name: znstar
Prototype: G
Help: znstar(n): 3-component vector v, giving the structure of (Z/nZ)^*.
 v[1] is the order (i.e. eulerphi(n)), v[2] is a vector of cyclic components,
 and v[3] is a vector giving the corresponding generators

