char *errmessage[]=
{  
  "what's going on ?",/* Should not occur */
  
      /*              ERREURS  DE  MP.S               */
  
  "impossible assignment S-->I",
  "impossible assignment I-->S",
  "impossible assignment I-->I",
  "impossible assignment R-->S",
  "impossible assignment R-->I",
  "impossible exchange I<-->I",
  "forbidden exchange I<-->R",
  "overflow in integer shift",
  "overflow in real shift",
  "overflow in truncation",
  
  "precision loss in truncation",
  "overflow in S+I",
  "overflow in I+I",
  "overflow in I+R",
  "overflow in R+R",
  "underflow in R+R",
  "overflow in I*I",
  "overflow in S*R",
  "overflow in S*I",
  "overflow in R*R",
  
  "underflow in R*R",
  "overflow in I*R (R=0)",
  "division by zero in S/S",
  "division by zero in S/I",
  "division by zero in S/R",
  "division by zero in I/S",
  "division by zero in I/R",
  "division by zero in R/S",
  "underflow in R/S",
  "division by zero in R/I",
  
  "division by zero in R/R",
  "underflow in R/R",
  "overflow in R/R",
  "underflow in R/I (R=0)",
  "forbidden division R/R-->I or I/R-->I or R/I-->I",
  "division by zero in dvmdii",
  "result defined as type R in dvmdz",
  "zero modulus in modss",
  "result defined as type R in modz",
  "division by zero in resss",
  
  "result defined as type R in resz",
  "forbidden type in an arithmetic function",
  "third operand of type real",
  "the PARI stack overflows !!!",
  "underflow or overflow in a R->dbl conversion",
  "significant pointers are lost in gerepile !!! (please report)",
  "quotient greater than or equal to 2^32 in divll",
  
      /*              ERREURS  DE  ALGLIN.C           */
  
  "not vector or matrix type in gtrans",
  "not a square matrix in gaddmat",
  "not a square matrix in gaddsmat",
  "impossible concatenation in concat",
  "not a vector or matrix type in extract",
  "mask is not of type I or is zero in extract or matextract",
  "too large mask in extract or matextract",
  "non matrix type in matextract",
  "non invertible matrix in gauss",
  "non inversible matrix in invmat",
  
  "non square matrix in caract, caradj, sqred, carhess, or hess",
  "non polynomial type or zero polynomial in assmat",
  "incorrect type in trace",
  "incompatible matrix dimensions in invmulmat",
  "non square matrix in gauss",
  "incorrect type in ker or rank, sqred, suppl, image or inverse image",
  "empty matrix in suppl",
  "not linearly independent columns in suppl",
  "not a matrix in matrixqz",
  "more rows than columns in matrixqz",

  "not a rational or integral matrix in matrixqz",
  "matrix of nonmaximal rank in matrixqz",
  "not a matrix in intersect",
  "not a positive definite matrix in sqred1",
  "internal bug in kerint, please report",
  "not a matrix in imagereel",
  "out of memory!",
  "matrix not of maximal rank in hermite spec",
  "incompatible field degrees in conjvec",
  "forbidden polynomial coefficient type in conjvec",

  /*              ERREURS  DE  ANAL.C          */
  
  "expected character: ",
  "non rectangular matrix",
  ";or ] expected",
  "unknown identifier: ",
  "unexpected character: ",
  "not a simple variable in numvar",
  "variable number out of range",
  "I can't remember before the big bang",
  "I can't see into the future",
  "unknown identifier valence",
  
  "no more variables available",
  "unknown function or error in formal parameters",
  "unexpected end of input",
  "variable name expected",
  "can't kill that",
  "array index out of range",
  "too many parameters in user-defined function call",
  "some argument is not of type integer at it should",
  "incorrect label number in label or goto",
  "incorrect type or length in matrix assignment",

  "too large exponent as input of a real number",

      /*              ERREURS  DE  ARITH.C            */
  
  "arithmetic functions want integer arguments",
  "negative or zero argument in arithmetic function",
  "negative argument in factorial function",
  "non invertible argument",
  "impossible inverse modulo",
  "incorrect type for a continued fraction",
  "non significant integral part in sfcont",
  "insuffcient precision for p=2 in hil",
  "impossible or incompatible types in hil",
  "incompatible arguments in chinois",

  "not a positive type I argument in fundunit",
  "discriminant not congruent to 0 or 1 mod 4 in fundunit",
  "not able to factor this number",
  "discriminant too large in classno",
  "discriminant not congruent to 0 or 1 mod 4 in classno",
  "non integral argument in qf",
  "incorrect characters or length of a quadratic form",
  "not an element of (Z/nZ)* in order",
  "primitive root does not exist in gener",
  "not enough precalculated primes",
  
  "incorrect type in issquarefree",
  "square argument in regula",
  "incorrect type in pnqn",
  "incorrect size in pnqn",
  "not a real quadratic form in rhoreal or redreal",
  "not a positive definite quadratic form in nucomp or nudupl",
  "not an integer exponent in nupow",
  "loss of precision in binary",
  "forbidden type in binary",
  "incorrect bound type in bestappr",
  "incorrect type in bestappr",

      /*              ERREURS  DE  BASE.C          */

  "not a matrix in Hermite or Smith reduction hnf",
  "more rows than columns in Hermite reduction hnf or nonsquare matrix in Smith",
  "Internal error in Hermite reduction hnf",
  "not a k by 2 matrix as factorization in factoredbase",
  "the given factorization is incorrect in factoredbase",
  "not a polynomial or constant polynomial in base",
  "not a polynomial or constant polynomial in galois or tschirnhaus",
  "not a polynomial in Q[X] in galois",
  "reducible polynomial in initalg",
  "reducible polynomial in galoisconj or galoisconj2",
  
  "bug1 in galois",
  "bug2 in galois",
  "bug3 in galois",
  "bug4 in galois",
  "you have found a counterexample to a conjecture, please send us\nthe polynomial as soon as possible",
  "bug1 in initalg",
  "bug: different degrees in gpolcomp",
  "bug in rootsof1, please report",
  "bug in kerlens, please report",
  "not a number field in some number field-related function",
  
  "not an ideal in an ideal-related function",
  "not a prime ideal in idealmulprime",
  "not a square matrix in idealmulprime",
  "not a vector or incorrect vector length in ideallllred or minideal",
  "polynomial not in Z[X] in initalg",
  "not a monic polynomial in initalg",

  /*              ERREURS  DE  BIBLI.C          */
  
  "not a series type in laplace",
  "negative valuation in laplace",
  "not a series type in convol",
  "zero series in convol",
  "non significant result in convol",
  "incorrect argument in O()",
  "non series or p-adic type in truncation",
  "precision<=0 in gprec",
  "quadratic discriminant is still undefined",
  "incorrect indices in somme",
  
  "incorrect indices in produit",
  "non polynomial type in polrecip",
  "incorrect type or sign in vector",
  "incorrect type or sign in matrix",
  "incorrect indices in prodeuler",
  "not a matrix type in lll or lllrat",
  "not a matrix type in lllgram",
  "not a square matrix in lllgram",
  "not a definite matrix in lllgram",
  "not a vector type in lindep",
  
  "more than 20 numbers in lindep",
  "not a scalar type in algdep",
  "not enough prime numbers",
  "incorrect second argument in changevar",
  "variable number too large in changevar",
  "reorder wants a vector",
  "indeterminate out of range in reorder",
  "duplicated indeterminates in reorder",
  "too many iterations for desired precision in integration routine",
  "not a vector in sort, indexsort or vecsort",
  
  "not vectors or different lengths in polint",
  "two abcissas are equal in polint",
  "roots must be bracketed in solve",
  "too many iterations in solve",
  "too many iterations in summation method",
  "index nesting level too large in",
  "dimensions must be nonnegative",
  "forbidden type in for or forstep",
  "step equal to zero in forstep",
  "not a polymod in polymodrecip",

  "zero polymod in polymodrecip",
  "not an integral matrix in lllgramint",
  "linearly dependent vectors in lllintold",
  "incorrect dimensions in initrect",
  "not an rplot vector type in a graphic function",
  "not a vector in rectdraw",
  "number of components of vector not a multiple of 3 in rectdraw",
  "not an integer type in rectdraw",
  "incorrect vector component types in rectstring",
  "cannot open postscript file",
  "incorrect lextype in vecsort",
  "indices out of range in vecsort",

  /*              ERREURS  DE  BUCH.C          */

  "incorrect type in buchxxx",
  "zero discriminant in buchxxx",
  "positive discriminant in buchimag, try buchreal",
  "discriminant not 0 or 1 mod 4 in buchxxx",
  "not enough relations in buchxxx",
  "overflow of the hash table for buchxxx, sorry",
  "not enough relations or h=1 in buchxxx",
  "negative discriminant in buchreal, try buchimag",
  "precision loss in buchreal",
  "reducible polynomial in buchgenxx",
  "fundamental units too large, use buchgen",
  "bug in calcindice, please report",
  "buchxxx is not available in library mode unless you add buch1.o and\nbuch2.o to the library files (make install-libbuch)",
  "bug in fundamental unit computation, please increase the default precision",

  /*           ERREURS DANS ELLIPTIC.C            */

  "bad argument for an elliptic curve related function",
  "valuation of j must be negative in p-adic initell",
  "singular curve in initell",
  "point not on elliptic curve",
  "forbidden type in zell",
  "too large prime in jacobi apell2, use apell instead",
  "internal error in apell",
  "f^(com*s) = 1 ???: internal error in appell1",
  "inconsistency in Tate's algorithm (please report)",
  "cut-off point must be positive in lseriesell",
  "not an integer type in akell",

      /*              ERREURS  DE  ES.C               */
  
  "variable number too large in impvar",
  "discriminant not congruent to 0 or 1 mod 4",
  "inexistent format",
    
      /*             ERREUR DANS GEN1.C                */

  "incorrect types in addition",
  "forbidden addition R+Imod",
  "forbidden addition Imod+Cx",
  "forbidden addition scalar+vector/matrix",
  "forbidden addition polynomial+vector/matrix",
  "forbidden addition series+polynomial/vector/matrix",
  "forbidden addition polmod+vector/matrix",
  "forbidden addition fraction+vector/matrix",
  "impossible addition vector+matrix",
  "forbidden addition type+Cx",

  "impossible addition Quad+Quad",
  "impossible addition p-adic+p-adic",
  "incorrect types in gmul",
  "forbidden multiplication R*Imod",
  "forbidden multiplication Imod*Cx",
  "forbidden multiplication series*polmod",
  "impossible multiplication vector*vector",
  "impossible multiplication vector*matrix",
  "impossible multiplication matrix*vector",
  "impossible multiplication matrix*matrix",

  "forbidden multiplication type*Cx",
  "impossible multiplication Quad*Quad",
  "impossible multiplication p-adic*p-adic",
  "incorrect type in gdiv",
  "division by zero in gdiv or gdivgs",
  "forbidden division R/Imod",
  "forbidden division Imod/R",
  "forbidden division Imod/Cx",
  "forbidden division Cx/Imod",
  "forbidden division scalar/vector",

  "division scalar/non square matrix",
  "forbidden division polynomial/vector or matrix",
  "forbidden division series/polmod",
  "forbidden division series/vector or matrix",
  "forbidden division polmod/series",
  "forbidden division polmod/vector or matrix",
  "forbidden division ratfun/vector or matrix",
  "division vector or matrix/vector or non square matrix",
  "impossible division Quad/Quad",
  "impossible division p-adic/p-adic",
  
  "bug in gadd, please report",
  "bug in gmul, please report",

  /*        ERREURS  DE  GEN2.C ET GEN3.C         */
  
  "non polynomial type in greffe",
  "error in mnet",
  "forbidden type in gexpo",
  "exact and zero argument in gexpo",
  "forbidden type in a comparison",
  "forbidden type in gtolong",
  "zero argument in gval",
  "forbidden or conflicting type in gval",
  "forbidden type in gabs",
  "impossible assignment S-->vector",

  "impossible assignment S-->matrix",
  "incorrect type in gaffect",
  "impossible assignment S-->",
  "forbidden assignment R-->",
  "forbidden assignment Imod-->",
  "impossible assignment Imod-->Imod",
  "forbidden assignment Imod-->p-adic",
  "impossible assignment Frac-->I",
  "impossible assignment Cx-->",
  "impossible assignment Quad-->",

  "forbidden assignment p-adic-->",
  "impossible assignment p-adic-->Imod",
  "impossible assignment p-adic-->p-adic",
  "forbidden assignment generic-->scalar",
  "impossible assignment polynomial-->polynomial",
  "forbidden assignment polynomial-->vector/matrix",
  "forbidden assignment series-->",
  "forbidden assignment Polmod-->",
  "impossible assignment Polmod-->Polmod",
  "forbidden addition p-adic+Quad",

  "forbidden assignment rational function-->polynomial/vector/matrix",
  "impossible assignment vector/matrix-->vector/matrix",
  "impossible assignment Quad-->Quad",
  "type error in gpui",
  "non zero exponent in gpui",
  "zero to a non positive exponent in gpui",
  "underflow or overflow in gpui",
  "incorrect type in gdivent or gdiventres",
  "incorrect type in gdivmod",
  "different types in gbezout",

  "incorrect type in gbezout",
  "incorrect type in ginvmod",
  "forbidden type in gmul2n",
  "inverse of a vector is forbidden",
  "not a series or pol type in normalize or normalizepol",
  "type mod I forbidden in gmod",
  "type mod polynomial forbidden in gmod",
  "modulus type forbidden in gmod",
  "forbidden substitution in a scalar type",
  "forbidden substitution by a vector",

  "forbidden substitution by a non square matrix",
  "non polynomial or series type substituted in a series",
  "valuation non positive in a series substitution",
  "reversion of a non series or of a series of valuation not equal to 1",
  "forbidden derivation of a polmod",
  "forbidden type in integration",
  "a log/atan appears in the integration, PARI cannot handle that",
  "forbidden type in gfloor",
  "forbidden type in ground",
  "forbidden type in gcvtoi",

  "not an integer modulus in cvtop or gcvtop",
  "forbidden type in cvtop",
  "forbidden type in grndtoi",
  "forbidden type in gceil",
  "forbidden type in gtrunc",
  "nonexistent component",
  "forbidden type in degree",
  "forbidden type in gsigne",
  "forbidden type in iscomplex",
  "forbidden type in denom",

  "forbidden type in numer",
  "forbidden type in negation",
  "forbidden type in lift or centerlift",
  "not a vector or matrix type in matsize",
  "inexistent type in simplify",
  "not a polynomial type in karamul",
  "not an integer type in mpkaramul",
  "minimum of an empty vector/matrix",

  /*              ERREURS DE GP.C             */

  "too many include files",
  "error opening input file",
  "error opening output file",
  "error opening log file pari.log",

  /*              ERREURS DE INIT.C             */
  
  "not enough memory",
  "user interrupt",
  "function already exists in install",
  "no memory available for stack expanding",

      /*              ERREURS  DE  PLOT.C          */

  "problem with the X window system",
  "no X server",
  "cannot open 9x15 font",
  "not vectors in plothraw",
  "vectors not of the same length in plothraw",
  "not enough memory in plothraw",

  /*              ERREURS  DE  POLARIT.C          */
  
  "non polynomial type in Euclidean division (gdeuc)",
  "non polynomial type in Euclidean division (gres)",
  "non polynomial type in Euclidean division (poldivres)",
  "Euclidean division by zero (gdeuc)",
  "Euclidean division by zero (gres)",
  "Euclidean division by zero (poldivres)",
  "non polynomial type in roots",
  "zero polynomial in roots",
  "too many iterations in roots",
  "INTERNAL ERROR: incorrect result in roots, increase precision or use rootslong",
  
  "deg(x)<deg(y) in euclidean pseudodiv",
  "incorrect type in bezoutpol",
  "incorrect type or zero polynomial in factmod",
  "non invertible fraction in a gcd with Imod or polymod",
  "forbidden gcd polynomial or power series with vector/matrix",
  "forbidden gcd rational function with vector/matrix",
  "gcd vector/matrix with a forbidden type",
  "non polynomial in resultant",
  "different variables in resultant",
  "incorrect type in discsr",

  "non polynomial type in polgcd",
  "non polynomial or zero in polynomial function",
  "not a squarefree polynomial in sturm",
  "not a nonzero polynomial in factpol",
  "internal error: bug in factpol",
  "internal error: bug in Hensel lift",
  "not a polynomial in newtonpoly",
  "incorrect type(s) or zero polynomial in rootpadic or factorpadic",
  "root does not exist in rootpadic",
  "nonzero valuation for f'(x0) in approxp",

  "nonpositive precision in rootpadic",
  "not a polynomial in poleval",
  "not a polynomial in polfnf",
  "X is not the main variable of the number field in polfnf",
  "not a polynomial in nfiso or nfincl",
  "constant polynomial in nfiso or nfincl",
  "not a polynomial in Q[X] in nfiso or nfincl",
  "not an irreducible polynomial in nfiso or nfincl",
  "not a number field in rootsof1",
  "bug1 in rootsof1, please report",

  /*              ERREURS  DE  TRANS.C            */
  
  "not a Quad/Cx type in gnorm",
  "not a vector type in gnorml2",
  "incorrect type in gconj or conjvec",
  "incorrect type in greal",
  "incorrect type in gimag",
  "not a type R in mpsqrt",
  "negative argument in mpsqrt",
  "forbidden type in gsqrt",
  "infinite precision in gsqrtz",
  "non quadratic residue in gsqrt",
  
  "odd exponent in gsqrt",
  "not a type R in mpexp1",
  "forbidden type in gexp",
  "infinite precision in gexpz",
  "negative exponent in gexp",
  "not a type R in mplog",
  "non positive argument in mplog",
  "forbidden type in glog",
  "infinite precision in glogz",
  "negative exponent in glog",
  
  "not a type R in mpsc1",
  "loss of precision in mpsc1",
  "not a type R in mpcos",
  "forbidden type in gcos",
  "infinite precision in gcosz",
  "negative exponent in gcos",
  "nor a type R in mpsin",
  "forbidden type in gsin",
  "infinite precision in gsinz",
  "negative exponent in gsin",
  
  "not a type R in mpsincos",
  "forbidden type in gsincos",
  "non zero exponent in gsincos",
  "forbidden type in gtan",
  "infinite precision in gtanz",
  "negative exponent in gtan",
  "not a type R in mpatan",
  "forbidden type in gatan",
  "infinite precision in gatanz",
  "negative exponent in gatan",
  
  "not a type R in mpasin",
  "forbidden argument in mpasin",
  "forbidden type in gasin",
  "infinite precision in gasinz",
  "negative exponent in gasin",
  "not a type R in mpacos",
  "forbidden argument in mpacos",
  "forbidden type in gacos",
  "infinite precision in gacosz",
  "negative exponent in gacos",
  
  "not a type R in mparg",
  "zero argument in mparg",
  "forbidden type in gch",
  "infinite precision in gchz",
  "not a type R in mpch",
  "forbidden type in gsh",
  "infinite precision in gshz",
  "not a type R in mpsh",
  "not a type R in mpth",
  "forbidden type in gth",
  
  "infinite precision in gthz",
  "not a type R in mpash",
  "forbidden type in gash",
  "infinite precision in gashz",
  "negative exponent in gash",
  "not a type R or<1 in mpach",
  "forbidden type in gach",
  "infinite precision in gachz",
  "negative exponent in gach",
  "not a type R in mpath",
  
  "forbidden type in gath",
  "infinite precision in gathz",
  "negative exponent in gath",
  "not a type R in mpgamma",
  "negative or zero integer argument in mpgamma",
  "forbidden type in ggamma",
  "infinite precision in ggammaz",
  "argument too large in gammademi",
  "forbidden type in ggamd",
  "infinite precision in ggamdz",
  
  "forbidden type in gpsi",
  "infinite precision in gpsiz",
  "zero argument in palog",
  "not a p-adic argument in teicher",
  "p-adic argument out of range for exponentiation",
  "agm of two vector/matrices",
  "binary quadratic forms cannot be used in transcendental functions",
  "q>=1 in theta",
  "not an integer index in jbesselh",
  "argument equal to one in zeta",
  "forbidden type in zeta",
  "infinite precision in gzetaz",
  "negative index in polylog",

      /*             BARATIN GENERAL                */

  "",
  
      /*             ERREUR PAS ENCORE IMPLEMENTE   */
  
  "sorry, the function"
};
