Changeset 56c789 in git for Singular/iparith.cc
- Timestamp:
- Oct 12, 2010, 3:03:05 PM (14 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- f86c483adff92eaa95fe133be87f5d14b7f57b61
- Parents:
- ec58bdfcf1e8339250d75b8fc0ce7fbbce505ddb
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/iparith.cc
rec58bd r56c789 65 65 # include <kernel/fglm.h> 66 66 #endif /* HAVE_FACTORY */ 67 #define HAVE_INTERPOLATION 68 #ifdef HAVE_INTERPOLATION 69 # include <Singular/interpolation.h> 70 #endif 67 #include <Singular/interpolation.h> 71 68 72 69 #include <Singular/ipshell.h> … … 118 115 119 116 120 /* ifdef GENTABLE: definitions are in ipshell.h */121 #ifndef GENTABLE122 117 typedef char * (*Proc1)(char *); 123 118 struct sValCmd1 … … 160 155 short valid_for; 161 156 }; 162 #endif /* GENTABLE */163 157 164 158 typedef struct 165 159 { 166 160 cmdnames *sCmds; /**< array of existing commands */ 167 #ifndef GENTABLE168 161 struct sValCmd1 *psValCmd1; 169 162 struct sValCmd2 *psValCmd2; 170 163 struct sValCmd3 *psValCmd3; 171 164 struct sValCmdM *psValCmdM; 172 #endif /* GENTABLE */173 165 int nCmdUsed; /**< number of commands used */ 174 166 int nCmdAllocated; /**< number of commands-slots allocated */ … … 211 203 212 204 int iiOp; /* the current operation*/ 213 214 #ifdef GENTABLE215 cmdnames cmds[] =216 { // name-string alias tokval toktype217 { "$INVALID$", 0, -1, 0},218 #ifdef HAVE_FANS219 { "addadj", 0, ADDADJ_CMD, CMD_M},220 { "addmaxcone", 0, ADDMCONE_CMD, CMD_2},221 { "adj", 0, ADJACENCY_CMD, CMD_13},222 #endif /* HAVE_FANS */223 { "alias", 0, ALIAS_CMD , PARAMETER},224 { "and", 0, '&' , LOGIC_OP},225 { "attrib", 0, ATTRIB_CMD , CMD_123},226 { "bareiss", 0, BAREISS_CMD , CMD_123},227 { "betti", 0, BETTI_CMD , CMD_12},228 { "bigint", 0, BIGINT_CMD , ROOT_DECL},229 #ifdef HAVE_PLURAL230 { "bracket", 0, BRACKET_CMD , CMD_2},231 #endif232 { "break", 0, BREAK_CMD , BREAK_CMD},233 { "breakpoint", 0, BREAKPOINT_CMD , CMD_M},234 { "char", 0, CHARACTERISTIC_CMD ,CMD_1},235 { "char_series", 0, CHAR_SERIES_CMD , CMD_1},236 { "charstr", 0, CHARSTR_CMD , CMD_1},237 { "chinrem", 0, CHINREM_CMD , CMD_2},238 { "cleardenom", 0, CONTENT_CMD , CMD_1},239 { "close", 0, CLOSE_CMD , CMD_1},240 { "coef", 0, COEF_CMD , CMD_M},241 { "coeffs", 0, COEFFS_CMD , CMD_23},242 #ifdef HAVE_FANS243 { "cone", 0, CONE_CMD, ROOT_DECL},244 #endif /* HAVE_FANS */245 { "continue", 0, CONTINUE_CMD , CONTINUE_CMD},246 { "contract", 0, CONTRACT_CMD , CMD_2},247 { "convhull", 0, NEWTONPOLY_CMD, CMD_1},248 { "dbprint", 0, DBPRINT_CMD , CMD_M},249 { "def", 0, DEF_CMD , ROOT_DECL},250 { "defined", 0, DEFINED_CMD , CMD_1},251 { "deg", 0, DEG_CMD , CMD_12},252 { "degree", 0, DEGREE_CMD , CMD_1},253 { "delete", 0, DELETE_CMD , CMD_2},254 #ifdef HAVE_FANS255 { "delmaxcone", 0, DELMCONE_CMD, CMD_12},256 #endif /* HAVE_FANS */257 { "det", 0, DET_CMD , CMD_1},258 { "diff", 0, DIFF_CMD , CMD_2},259 { "dim", 0, DIM_CMD , CMD_1},260 { "div", 0, INTDIV_CMD , MULDIV_OP},261 { "division", 0, DIVISION_CMD , CMD_M},262 { "dump", 0, DUMP_CMD, CMD_1},263 { "extgcd", 0, EXTGCD_CMD , CMD_2},264 { "ERROR", 0, ERROR_CMD , CMD_1},265 { "eliminate", 0, ELIMINATION_CMD, CMD_23},266 { "else", 0, ELSE_CMD , ELSE_CMD},267 #ifdef HAVE_PLURAL268 { "envelope", 0, ENVELOPE_CMD , CMD_1},269 #endif270 { "eval", 0, EVAL , EVAL},271 { "example", 0, EXAMPLE_CMD , EXAMPLE_CMD},272 { "execute", 0, EXECUTE_CMD , CMD_1},273 { "export", 0, EXPORT_CMD , EXPORT_CMD},274 { "exportto", 0, EXPORTTO_CMD , CMD_2},275 #ifdef HAVE_FANS276 { "facetnormals",0, FACETNS_CMD, CMD_1},277 #endif /* HAVE_FANS */278 { "factorize", 0, FAC_CMD , CMD_12},279 #ifdef HAVE_FANS280 { "fan", 0, FAN_CMD, ROOT_DECL},281 #endif /* HAVE_FANS */282 { "farey", 0, FAREY_CMD , CMD_2},283 { "fetch", 0, FETCH_CMD , CMD_2},284 { "fglm", 0, FGLM_CMD , CMD_2},285 { "fglmquot", 0, FGLMQUOT_CMD, CMD_2},286 { "find", 0, FIND_CMD , CMD_23},287 { "finduni", 0, FINDUNI_CMD, CMD_1},288 { "forif", 0, IF_CMD , IF_CMD},289 { "freemodule", 0, FREEMODULE_CMD , CMD_1},290 { "facstd", 0, FACSTD_CMD , CMD_12},291 { "frwalk", 0, FWALK_CMD , CMD_23},292 { "gen", 0, E_CMD , CMD_1},293 { "getdump", 0, GETDUMP_CMD, CMD_1},294 #ifdef HAVE_FANS295 { "getprop", 0, GETPROP_CMD, CMD_2},296 #endif /* HAVE_FANS */297 { "gcd", 0, GCD_CMD , CMD_2},298 { "GCD", 2, GCD_CMD , CMD_2},299 { "hilb", 0, HILBERT_CMD , CMD_123},300 { "highcorner", 0, HIGHCORNER_CMD, CMD_1},301 { "homog", 0, HOMOG_CMD , CMD_123},302 { "hres", 0, HRES_CMD , CMD_2},303 { "ideal", 0, IDEAL_CMD , IDEAL_CMD},304 { "if", 0, IF_CMD , IF_CMD},305 { "imap", 0, IMAP_CMD , CMD_2},306 { "impart", 0, IMPART_CMD , CMD_1},307 { "importfrom", 0, IMPORTFROM_CMD , CMD_2},308 { "indepSet", 0, INDEPSET_CMD , CMD_12},309 { "insert", 0, INSERT_CMD , CMD_23},310 { "int", 0, INT_CMD , ROOT_DECL},311 #ifdef HAVE_INTERPOLATION312 { "interpolation",0,INTERPOLATE_CMD , CMD_2},313 #endif314 { "interred", 0, INTERRED_CMD , CMD_1},315 { "intersect", 0, INTERSECT_CMD , CMD_M},316 { "intmat", 0, INTMAT_CMD , INTMAT_CMD},317 { "intvec", 0, INTVEC_CMD , ROOT_DECL_LIST},318 { "jacob", 0, JACOB_CMD , CMD_1},319 { "janet", 0, JANET_CMD , CMD_12},320 { "jet", 0, JET_CMD , CMD_M},321 { "kbase", 0, KBASE_CMD , CMD_12},322 { "keepring", 0, KEEPRING_CMD , KEEPRING_CMD},323 { "kernel", 0, KERNEL_CMD , CMD_2},324 { "kill", 0, KILL_CMD , KILL_CMD},325 { "killattrib", 0, KILLATTR_CMD , CMD_12},326 { "koszul", 0, KOSZUL_CMD , CMD_23},327 { "kres", 0, KRES_CMD , CMD_2},328 { "laguerre", 0, LAGSOLVE_CMD, CMD_3},329 { "lead", 0, LEAD_CMD , CMD_1},330 { "leadcoef", 0, LEADCOEF_CMD , CMD_1},331 { "leadexp", 0, LEADEXP_CMD , CMD_1},332 { "leadmonom", 0, LEADMONOM_CMD , CMD_1},333 { "LIB", 0, LIB_CMD , SYSVAR},334 { "lift", 0, LIFT_CMD , CMD_23},335 { "liftstd", 0, LIFTSTD_CMD , CMD_23},336 { "link", 0, LINK_CMD , ROOT_DECL},337 #ifdef HAVE_FANS338 { "linspace", 0, LINSPACE_CMD, CMD_1},339 #endif /* HAVE_FANS */340 { "listvar", 0, LISTVAR_CMD , LISTVAR_CMD},341 { "list", 0, LIST_CMD , ROOT_DECL_LIST},342 { "load", 0, LOAD_CMD , CMD_12},343 { "lres", 0, LRES_CMD , CMD_2},344 { "ludecomp", 0, LU_CMD , CMD_1},345 { "luinverse", 0, LUI_CMD , CMD_M},346 { "lusolve", 0, LUS_CMD , CMD_M},347 { "map", 0, MAP_CMD , RING_DECL},348 { "matrix", 0, MATRIX_CMD , MATRIX_CMD},349 { "maxideal", 0, MAXID_CMD , CMD_1},350 #ifdef HAVE_FANS351 { "maxcone", 0, MAXCONE_CMD, CMD_12},352 { "maxrays", 0, MAXRAYS_CMD, CMD_1},353 #endif /* HAVE_FANS */354 { "memory", 0, MEMORY_CMD , CMD_1},355 { "minbase", 0, MINBASE_CMD , CMD_1},356 { "minor", 0, MINOR_CMD , CMD_M},357 { "minres", 0, MINRES_CMD , CMD_1},358 { "mod", 0, INTMOD_CMD , MULDIV_OP},359 { "module", 0, MODUL_CMD , MODUL_CMD},360 { "modulo", 0, MODULO_CMD , CMD_2},361 { "monitor", 0, MONITOR_CMD , CMD_12},362 { "monomial", 0, MONOM_CMD , CMD_1},363 { "mpresmat", 0, MPRES_CMD, CMD_2},364 { "mult", 0, MULTIPLICITY_CMD , CMD_1},365 #ifdef OLD_RES366 { "mres", 0, MRES_CMD , CMD_23},367 #else368 { "mres", 0, MRES_CMD , CMD_2},369 #endif370 { "mstd", 0, MSTD_CMD , CMD_1},371 { "nameof", 0, NAMEOF_CMD , CMD_1},372 { "names", 0, NAMES_CMD , CMD_M},373 #ifdef HAVE_PLURAL374 { "ncalgebra", 2, NCALGEBRA_CMD , CMD_2},375 { "nc_algebra", 0, NC_ALGEBRA_CMD , CMD_2},376 #endif377 { "ncols", 0, COLS_CMD , CMD_1},378 { "not", 0, NOT , NOT},379 { "npars", 0, NPARS_CMD , CMD_1},380 #ifdef OLD_RES381 { "nres", 0, RES_CMD , CMD_23},382 #else383 { "nres", 0, RES_CMD , CMD_2},384 #endif385 { "nrows", 0, ROWS_CMD , CMD_1},386 { "number", 0, NUMBER_CMD , RING_DECL},387 { "nvars", 0, NVARS_CMD , CMD_1},388 { "open", 0, OPEN_CMD , CMD_1},389 #ifdef HAVE_PLURAL390 { "oppose", 0, OPPOSE_CMD , CMD_2},391 { "opposite", 0, OPPOSITE_CMD , CMD_1},392 #endif393 { "option", 0, OPTION_CMD , CMD_M},394 { "or", 0, '|' , LOGIC_OP},395 { "ord", 0, ORD_CMD , CMD_1},396 { "ordstr", 0, ORDSTR_CMD , CMD_1},397 { "package", 0, PACKAGE_CMD , ROOT_DECL},398 { "par", 0, PAR_CMD , CMD_1},399 { "parameter", 0, PARAMETER , PARAMETER},400 { "pardeg", 0, PARDEG_CMD , CMD_1},401 { "parstr", 0, PARSTR_CMD , CMD_12},402 { "poly", 0, POLY_CMD , RING_DECL},403 { "preimage", 0, PREIMAGE_CMD , CMD_13},404 { "prime", 0, PRIME_CMD , CMD_1},405 { "primefactors",0, PFAC_CMD , CMD_12},406 { "print", 0, PRINT_CMD , CMD_12},407 { "prune", 0, PRUNE_CMD , CMD_1},408 { "proc", 0, PROC_CMD , PROC_CMD},409 { "qhweight", 0, QHWEIGHT_CMD , CMD_1},410 { "qring", 0, QRING_CMD , ROOT_DECL},411 { "quote", 0, QUOTE , QUOTE},412 { "quotient", 0, QUOTIENT_CMD , CMD_2},413 { "random", 0, RANDOM_CMD , CMD_23},414 { "rank", 0, RANK_CMD , CMD_12},415 { "read", 0, READ_CMD , CMD_12},416 { "reduce", 0, REDUCE_CMD , CMD_M},417 { "regularity", 0, REGULARITY_CMD , CMD_1},418 { "repart", 0, REPART_CMD , CMD_1},419 { "reservedName",0, RESERVEDNAME_CMD , CMD_M},420 { "resolution", 0, RESOLUTION_CMD , RING_DECL},421 { "resultant", 0, RESULTANT_CMD, CMD_3},422 { "return", 0, RETURN , RETURN},423 { "RETURN", 0, END_GRAMMAR , RETURN},424 { "ring", 0, RING_CMD , RING_CMD},425 { "ringlist", 0, RINGLIST_CMD , CMD_1},426 { "rvar", 0, IS_RINGVAR , CMD_1},427 #ifdef HAVE_FANS428 { "setprop", 0, SETPROP_CMD, CMD_3},429 #endif /* HAVE_FANS */430 { "setring", 0, SETRING_CMD , SETRING_CMD},431 { "simplex", 0, SIMPLEX_CMD, CMD_M},432 { "simplify", 0, SIMPLIFY_CMD , CMD_2},433 { "size", 0, COUNT_CMD , CMD_1},434 { "slimgb", 0, SLIM_GB_CMD , CMD_1},435 { "sortvec", 0, SORTVEC_CMD , CMD_1},436 { "sqrfree", 0, SQR_FREE_CMD , CMD_1},437 #ifdef OLD_RES438 { "sres", 0, SRES_CMD , CMD_23},439 #else /* OLD_RES */440 { "sres", 0, SRES_CMD , CMD_2},441 #endif /* OLD_RES */442 { "status", 0, STATUS_CMD, CMD_M},443 { "std", 0, STD_CMD , CMD_M},444 { "string", 0, STRING_CMD , ROOT_DECL_LIST},445 { "subst", 0, SUBST_CMD , CMD_M},446 { "system", 0, SYSTEM_CMD, CMD_M},447 { "syz", 0, SYZYGY_CMD , CMD_1},448 { "test", 0, TEST_CMD , CMD_M},449 { "trace", 0, TRACE_CMD , CMD_1},450 { "transpose", 0, TRANSPOSE_CMD , CMD_1},451 #ifdef HAVE_PLURAL452 { "twostd", 0, TWOSTD_CMD , CMD_1},453 #endif /* HAVE_PLURAL */454 { "type", 0, TYPE_CMD , TYPE_CMD},455 { "typeof", 0, TYPEOF_CMD , CMD_1},456 { "univariate", 0, UNIVARIATE_CMD, CMD_1},457 { "uressolve", 0, URSOLVE_CMD, CMD_M},458 { "vandermonde", 0, VANDER_CMD, CMD_3},459 { "var", 0, VAR_CMD , CMD_1},460 { "variables", 0, VARIABLES_CMD, CMD_1},461 { "varstr", 0, VARSTR_CMD , CMD_12},462 { "vdim", 0, VDIM_CMD , CMD_1},463 { "vector", 0, VECTOR_CMD , RING_DECL},464 { "wedge", 0, WEDGE_CMD , CMD_2},465 { "weight", 0, WEIGHT_CMD , CMD_1},466 { "whileif", 0, IF_CMD , IF_CMD},467 { "write", 0, WRITE_CMD , CMD_M},468 /* delete for next version:*/469 { "IN", 1, LEAD_CMD , CMD_1},470 { "NF", 1, REDUCE_CMD , CMD_M},471 { "multiplicity",1, MULTIPLICITY_CMD , CMD_1},472 { "verbose", 2, OPTION_CMD , CMD_M},473 // { "rank", 1, ROWS_CMD , CMD_1},474 // { "Current", 0, -1 , SYSVAR},475 // { "Top", 0, -1 , SYSVAR},476 // { "Up", 0, -1 , SYSVAR},477 478 /* set sys vars*/479 { "degBound", 0, VMAXDEG , SYSVAR},480 { "echo", 0, VECHO , SYSVAR},481 { "minpoly", 0, VMINPOLY , SYSVAR},482 { "multBound", 0, VMAXMULT , SYSVAR},483 { "noether", 0, VNOETHER , SYSVAR},484 { "pagewidth", 0, VCOLMAX , SYSVAR},485 { "printlevel", 0, VPRINTLEVEL , SYSVAR},486 { "short", 0, VSHORTOUT , SYSVAR},487 { "timer", 0, VTIMER , SYSVAR},488 { "rtimer", 0, VRTIMER, SYSVAR},489 { "TRACE", 0, TRACE , SYSVAR},490 { "voice", 0, VOICE , SYSVAR},491 492 /* other reserved words:scanner.l */493 { "pause", 2, -1 , 0},494 { "while", 0, -1 , 0},495 { "for", 0, -1 , 0},496 { "help", 0, -1 , 0},497 { "newline", 0, -1 , 0},498 { "exit", 0, -1 , 0},499 { "quit", 0, -1 , 0},500 /* end of list marker */501 { NULL, 0, 0, 0}502 };503 #endif /* GENTABLE */504 205 505 206 /*=================== operations with 2 args.: static proc =================*/ … … 3654 3355 } 3655 3356 3656 /*=================== operations with 2 args.: table =================*/3657 3658 struct sValCmd2 dArith2[]=3659 {3660 // operations:3661 // proc cmd res arg1 arg2 plural3662 {jjCOLCOL, COLONCOLON, ANY_TYPE, DEF_CMD, DEF_CMD, ALLOW_PLURAL | ALLOW_RING}3663 ,{jjPLUS_I, '+', INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3664 ,{jjPLUS_BI, '+', BIGINT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3665 ,{jjPLUS_N, '+', NUMBER_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3666 ,{jjPLUS_P, '+', POLY_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3667 ,{jjPLUS_P, '+', VECTOR_CMD, VECTOR_CMD, VECTOR_CMD, ALLOW_PLURAL | ALLOW_RING}3668 ,{jjPLUS_ID, '+', IDEAL_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING}3669 ,{jjPLUS_ID, '+', MODUL_CMD, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL | ALLOW_RING}3670 ,{jjPLUS_P_MA, '+', MATRIX_CMD, POLY_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING}3671 ,{jjPLUS_MA_P, '+', MATRIX_CMD, MATRIX_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3672 ,{jjPLUS_MA, '+', MATRIX_CMD, MATRIX_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING}3673 ,{jjPLUS_S, '+', STRING_CMD, STRING_CMD, STRING_CMD, ALLOW_PLURAL | ALLOW_RING}3674 ,{jjOP_IV_I, '+', INTVEC_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3675 ,{jjOP_I_IV, '+', INTVEC_CMD, INT_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3676 ,{jjOP_IM_I, '+', INTMAT_CMD, INTMAT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3677 ,{jjOP_I_IM, '+', INTMAT_CMD, INT_CMD, INTMAT_CMD, ALLOW_PLURAL | ALLOW_RING}3678 ,{jjPLUS_IV, '+', INTVEC_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3679 ,{jjPLUS_IV, '+', INTMAT_CMD, INTMAT_CMD, INTMAT_CMD, ALLOW_PLURAL | ALLOW_RING}3680 ,{lAdd, '+', LIST_CMD, LIST_CMD, LIST_CMD, ALLOW_PLURAL | ALLOW_RING}3681 ,{jjRSUM, '+', RING_CMD, RING_CMD, RING_CMD, ALLOW_PLURAL | ALLOW_RING}3682 ,{jjRSUM, '+', QRING_CMD, QRING_CMD, RING_CMD, ALLOW_PLURAL | ALLOW_RING}3683 ,{jjRSUM, '+', QRING_CMD, RING_CMD, QRING_CMD, ALLOW_PLURAL | ALLOW_RING}3684 ,{jjRSUM, '+', QRING_CMD, QRING_CMD, QRING_CMD, ALLOW_PLURAL | ALLOW_RING}3685 ,{jjMINUS_I, '-', INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3686 ,{jjMINUS_BI, '-', BIGINT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3687 ,{jjMINUS_N, '-', NUMBER_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3688 ,{jjMINUS_P, '-', POLY_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3689 ,{jjMINUS_P, '-', VECTOR_CMD, VECTOR_CMD, VECTOR_CMD, ALLOW_PLURAL | ALLOW_RING}3690 ,{jjPLUS_MA_P, '-', MATRIX_CMD, MATRIX_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3691 ,{jjMINUS_MA, '-', MATRIX_CMD, MATRIX_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING}3692 ,{jjOP_IV_I, '-', INTVEC_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3693 ,{jjOP_IM_I, '-', INTMAT_CMD, INTMAT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3694 ,{jjMINUS_IV, '-', INTVEC_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3695 ,{jjMINUS_IV, '-', INTMAT_CMD, INTMAT_CMD, INTMAT_CMD, ALLOW_PLURAL | ALLOW_RING}3696 ,{jjWRONG2, '-', NONE, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING}3697 ,{jjWRONG2, '-', NONE, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL | ALLOW_RING}3698 ,{jjTIMES_I, '*', INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3699 ,{jjTIMES_BI, '*', BIGINT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3700 ,{jjTIMES_N, '*', NUMBER_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3701 ,{jjTIMES_P, '*', POLY_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3702 ,{jjTIMES_P, '*', VECTOR_CMD, POLY_CMD, VECTOR_CMD, ALLOW_PLURAL | ALLOW_RING}3703 ,{jjTIMES_P, '*', VECTOR_CMD, VECTOR_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3704 ,{jjTIMES_MA_P1,'*', IDEAL_CMD, IDEAL_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3705 ,{jjTIMES_MA_P2,'*', IDEAL_CMD, POLY_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING}3706 ,{jjTIMES_MA_P1,'*', MODUL_CMD, MODUL_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3707 ,{jjTIMES_MA_P2,'*', MODUL_CMD, POLY_CMD, MODUL_CMD, ALLOW_PLURAL | ALLOW_RING}3708 ,{jjTIMES_ID, '*', IDEAL_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING}3709 ,{jjTIMES_MA_P1,'*', MODUL_CMD, IDEAL_CMD, VECTOR_CMD, ALLOW_PLURAL | ALLOW_RING}3710 ,{jjTIMES_MA_P2,'*', MODUL_CMD, VECTOR_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING}3711 ,{jjTIMES_ID, '*', MODUL_CMD, IDEAL_CMD, MODUL_CMD, ALLOW_PLURAL | ALLOW_RING}3712 ,{jjTIMES_ID, '*', MODUL_CMD, MODUL_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING}3713 ,{jjTIMES_MA_P1,'*', MATRIX_CMD, MATRIX_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3714 ,{jjTIMES_MA_P2,'*', MATRIX_CMD, POLY_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING}3715 ,{jjTIMES_MA_N1,'*', MATRIX_CMD, MATRIX_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3716 ,{jjTIMES_MA_N2,'*', MATRIX_CMD, NUMBER_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING}3717 ,{jjTIMES_MA_I1,'*', MATRIX_CMD, MATRIX_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3718 ,{jjTIMES_MA_I2,'*', MATRIX_CMD, INT_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING}3719 ,{jjTIMES_MA, '*', MATRIX_CMD, MATRIX_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING}3720 ,{jjTIMES_MA_BI1,'*', MATRIX_CMD, MATRIX_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3721 ,{jjTIMES_MA_BI2,'*', MATRIX_CMD, BIGINT_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING}3722 ,{jjOP_IV_I, '*', INTVEC_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3723 ,{jjOP_I_IV, '*', INTVEC_CMD, INT_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3724 ,{jjOP_IV_I, '*', INTMAT_CMD, INTMAT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3725 ,{jjOP_I_IV, '*', INTMAT_CMD, INT_CMD, INTMAT_CMD, ALLOW_PLURAL | ALLOW_RING}3726 ,{jjTIMES_IV, '*', INTVEC_CMD, INTMAT_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3727 ,{jjTIMES_IV, '*', INTMAT_CMD, INTMAT_CMD, INTMAT_CMD, ALLOW_PLURAL | ALLOW_RING}3728 ,{jjTIMES_IV, '*', INTMAT_CMD, INTVEC_CMD, INTMAT_CMD, ALLOW_PLURAL | ALLOW_RING}3729 ,{jjDIV_N, '/', NUMBER_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3730 ,{jjDIV_P, '/', POLY_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3731 ,{jjDIV_P, '/', VECTOR_CMD, VECTOR_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3732 ,{jjDIV_Ma, '/', MATRIX_CMD, MATRIX_CMD, POLY_CMD, ALLOW_PLURAL | NO_RING}3733 ,{jjDIVMOD_I, '/', INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3734 ,{jjDIV_BI, '/', BIGINT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3735 ,{jjOP_IV_I, '/', INTVEC_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3736 ,{jjOP_IV_I, '/', INTMAT_CMD, INTMAT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3737 ,{jjDIVMOD_I, INTDIV_CMD, INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3738 ,{jjDIV_BI, INTDIV_CMD, BIGINT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3739 ,{jjOP_IV_I, INTDIV_CMD, INTVEC_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3740 ,{jjOP_IV_I, INTDIV_CMD, INTMAT_CMD, INTMAT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3741 ,{jjDIVMOD_I, '%', INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3742 ,{jjMOD_BI, '%', BIGINT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3743 ,{jjOP_IV_I, '%', INTVEC_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3744 ,{jjOP_IV_I, '%', INTMAT_CMD, INTMAT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3745 ,{jjMOD_N, '%', NUMBER_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3746 ,{jjDIVMOD_I, INTMOD_CMD, INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3747 ,{jjMOD_BI, INTMOD_CMD, BIGINT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3748 ,{jjOP_IV_I, INTMOD_CMD, INTVEC_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3749 ,{jjOP_IV_I, INTMOD_CMD, INTMAT_CMD, INTMAT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3750 ,{jjMOD_N, INTMOD_CMD, NUMBER_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3751 ,{jjPOWER_I, '^', INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3752 ,{jjPOWER_BI, '^', BIGINT_CMD, BIGINT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3753 ,{jjPOWER_N, '^', NUMBER_CMD, NUMBER_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3754 ,{jjPOWER_P, '^', POLY_CMD, POLY_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3755 ,{jjPOWER_ID, '^', IDEAL_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3756 ,{jjLE_I, LE, INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3757 ,{jjLE_BI, LE, INT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3758 ,{jjLE_N, LE, INT_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3759 ,{jjCOMPARE_S, LE, INT_CMD, STRING_CMD, STRING_CMD, ALLOW_PLURAL | ALLOW_RING}3760 ,{jjCOMPARE_IV_I,LE, INT_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3761 ,{jjCOMPARE_IV,LE, INT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3762 ,{jjCOMPARE_P, LE, INT_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3763 ,{jjCOMPARE_P, LE, INT_CMD, VECTOR_CMD, VECTOR_CMD, ALLOW_PLURAL | ALLOW_RING}3764 ,{jjLT_I, '<', INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3765 ,{jjLT_BI, '<', INT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3766 ,{jjLT_N, '<', INT_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3767 ,{jjCOMPARE_IV_I,'<', INT_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3768 ,{jjCOMPARE_IV,'<', INT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3769 ,{jjCOMPARE_S, '<', INT_CMD, STRING_CMD, STRING_CMD, ALLOW_PLURAL | ALLOW_RING}3770 ,{jjCOMPARE_P, '<', INT_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3771 ,{jjCOMPARE_P, '<', INT_CMD, VECTOR_CMD, VECTOR_CMD, ALLOW_PLURAL | ALLOW_RING}3772 ,{jjGE_I, GE, INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3773 ,{jjGE_BI, GE, INT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3774 ,{jjGE_N, GE, INT_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3775 ,{jjCOMPARE_S, GE, INT_CMD, STRING_CMD, STRING_CMD, ALLOW_PLURAL | ALLOW_RING}3776 ,{jjCOMPARE_IV_I,GE, INT_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3777 ,{jjCOMPARE_IV,GE, INT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3778 ,{jjCOMPARE_P, GE, INT_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3779 ,{jjCOMPARE_P, GE, INT_CMD, VECTOR_CMD, VECTOR_CMD, ALLOW_PLURAL | ALLOW_RING}3780 ,{jjGT_I, '>', INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3781 ,{jjGT_BI, '>', INT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3782 ,{jjGT_N, '>', INT_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3783 ,{jjCOMPARE_S, '>', INT_CMD, STRING_CMD, STRING_CMD, ALLOW_PLURAL | ALLOW_RING}3784 ,{jjCOMPARE_IV_I,'>', INT_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3785 ,{jjCOMPARE_IV,'>', INT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3786 ,{jjCOMPARE_P, '>', INT_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3787 ,{jjCOMPARE_P, '>', INT_CMD, VECTOR_CMD, VECTOR_CMD, ALLOW_PLURAL | ALLOW_RING}3788 ,{jjAND_I, '&', INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3789 ,{jjOR_I, '|', INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3790 ,{jjEQUAL_I, EQUAL_EQUAL, INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3791 ,{jjEQUAL_BI, EQUAL_EQUAL, INT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3792 ,{jjEQUAL_N, EQUAL_EQUAL, INT_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3793 ,{jjCOMPARE_S, EQUAL_EQUAL, INT_CMD, STRING_CMD, STRING_CMD, ALLOW_PLURAL | ALLOW_RING}3794 ,{jjEQUAL_P, EQUAL_EQUAL, INT_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3795 ,{jjEQUAL_P, EQUAL_EQUAL, INT_CMD, VECTOR_CMD, VECTOR_CMD, ALLOW_PLURAL | ALLOW_RING}3796 ,{jjCOMPARE_IV_I,EQUAL_EQUAL, INT_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3797 ,{jjCOMPARE_IV,EQUAL_EQUAL, INT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3798 ,{jjCOMPARE_IV,EQUAL_EQUAL, INT_CMD, INTMAT_CMD, INTMAT_CMD, ALLOW_PLURAL | ALLOW_RING}3799 ,{jjEQUAL_Ma, EQUAL_EQUAL, INT_CMD, MATRIX_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING}3800 ,{jjWRONG2, EQUAL_EQUAL, 0, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING}3801 ,{jjWRONG2, EQUAL_EQUAL, 0, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL | ALLOW_RING}3802 ,{jjWRONG2, EQUAL_EQUAL, 0, IDEAL_CMD, MODUL_CMD, ALLOW_PLURAL | ALLOW_RING}3803 ,{jjWRONG2, EQUAL_EQUAL, 0, MODUL_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING}3804 ,{jjEQUAL_I, NOTEQUAL, INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3805 ,{jjEQUAL_BI, NOTEQUAL, INT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}3806 ,{jjEQUAL_N, NOTEQUAL, INT_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING}3807 ,{jjCOMPARE_S, NOTEQUAL, INT_CMD, STRING_CMD, STRING_CMD, ALLOW_PLURAL | ALLOW_RING}3808 ,{jjEQUAL_P, NOTEQUAL, INT_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}3809 ,{jjEQUAL_P, NOTEQUAL, INT_CMD, VECTOR_CMD, VECTOR_CMD, ALLOW_PLURAL | ALLOW_RING}3810 ,{jjCOMPARE_IV,NOTEQUAL, INT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3811 ,{jjCOMPARE_IV,NOTEQUAL, INT_CMD, INTMAT_CMD, INTMAT_CMD, ALLOW_PLURAL | ALLOW_RING}3812 ,{jjEQUAL_Ma, NOTEQUAL, INT_CMD, MATRIX_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING}3813 ,{jjWRONG2, NOTEQUAL, 0, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING}3814 ,{jjWRONG2, NOTEQUAL, 0, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL | ALLOW_RING}3815 ,{jjWRONG2, NOTEQUAL, 0, IDEAL_CMD, MODUL_CMD, ALLOW_PLURAL | ALLOW_RING}3816 ,{jjWRONG2, NOTEQUAL, 0, MODUL_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING}3817 ,{jjDOTDOT, DOTDOT, INTVEC_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3818 ,{jjINDEX_I, '[', INT_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3819 ,{jjINDEX_IV, '[', INT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3820 ,{jjINDEX_I, '[', POLY_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3821 ,{jjINDEX_I, '[', POLY_CMD, MAP_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3822 ,{jjINDEX_IV, '[', POLY_CMD, IDEAL_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3823 ,{jjINDEX_I, '[', VECTOR_CMD, MODUL_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3824 ,{jjINDEX_IV, '[', VECTOR_CMD, MODUL_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3825 ,{jjINDEX_I, '[', STRING_CMD, STRING_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3826 ,{jjINDEX_IV, '[', STRING_CMD, STRING_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3827 ,{jjINDEX_I, '[', ANY_TYPE/*set by p*/,LIST_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3828 ,{jjINDEX_IV, '[', ANY_TYPE/*set by p*/,LIST_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3829 ,{jjINDEX_P, '[', POLY_CMD, POLY_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3830 ,{jjINDEX_P_IV,'[', POLY_CMD, POLY_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3831 ,{jjINDEX_V, '[', POLY_CMD, VECTOR_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3832 ,{jjINDEX_V_IV,'[', VECTOR_CMD, VECTOR_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3833 ,{jjPROC, '(', ANY_TYPE/*set by p*/,PROC_CMD, DEF_CMD, ALLOW_PLURAL | ALLOW_RING}3834 ,{jjMAP, '(', ANY_TYPE/*set by p*/,MAP_CMD, DEF_CMD, ALLOW_PLURAL | ALLOW_RING}3835 ,{jjKLAMMER, '(', ANY_TYPE/*set by p*/,ANY_TYPE, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3836 ,{jjKLAMMER_IV,'(', ANY_TYPE/*set by p*/,ANY_TYPE, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}3837 ,{jjCOLON, ':', INTVEC_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3838 // and the procedures with 2 arguments:3839 ,{atATTRIB2, ATTRIB_CMD, NONE/*set by p*/,DEF_CMD, STRING_CMD, ALLOW_PLURAL | ALLOW_RING}3840 ,{jjWRONG2, BAREISS_CMD, 0, DEF_CMD, DEF_CMD, ALLOW_PLURAL | ALLOW_RING}3841 ,{jjBETTI2, BETTI_CMD, INTMAT_CMD, LIST_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3842 ,{syBetti2, BETTI_CMD, INTMAT_CMD, RESOLUTION_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3843 ,{jjBETTI2_ID, BETTI_CMD, INTMAT_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3844 ,{jjBETTI2_ID, BETTI_CMD, INTMAT_CMD, MODUL_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}3845 #ifdef HAVE_PLURAL3846 ,{jjBRACKET, BRACKET_CMD, POLY_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL | NO_RING}3847 #endif3848 #ifdef HAVE_FACTORY3849 ,{jjCHINREM_BI,CHINREM_CMD, BIGINT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}3850 //,{jjCHINREM_P, CHINREM_CMD, POLY_CMD, LIST_CMD, INTVEC_CMD, ALLOW_PLURAL}3851 ,{jjCHINREM_ID,CHINREM_CMD, ANY_TYPE/*set by p*/,LIST_CMD,INTVEC_CMD, ALLOW_PLURAL |NO_RING}3852 ,{jjCHINREM_ID,CHINREM_CMD, ANY_TYPE/*set by p*/,LIST_CMD,LIST_CMD, ALLOW_PLURAL |NO_RING}3853 #else3854 ,{jjWRONG2, CHINREM_CMD, BIGINT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}3855 #endif3856 ,{jjCOEF, COEF_CMD, MATRIX_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3857 ,{jjCOEFFS_Id, COEFFS_CMD, MATRIX_CMD, IDEAL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3858 ,{jjCOEFFS_Id, COEFFS_CMD, MATRIX_CMD, MODUL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3859 ,{jjCOEFFS2_KB,COEFFS_CMD, MATRIX_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3860 ,{jjCOEFFS2_KB,COEFFS_CMD, MATRIX_CMD, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}3861 ,{jjCONTRACT, CONTRACT_CMD, MATRIX_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3862 ,{jjDEG_IV, DEG_CMD, INT_CMD, POLY_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}3863 ,{jjDEG_IV, DEG_CMD, INT_CMD, VECTOR_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}3864 ,{jjDEG_M_IV, DEG_CMD, INT_CMD, MATRIX_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}3865 ,{lDelete, DELETE_CMD, LIST_CMD, LIST_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3866 ,{jjDIFF_P, DIFF_CMD, POLY_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3867 ,{jjDIFF_P, DIFF_CMD, VECTOR_CMD, VECTOR_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3868 ,{jjDIFF_ID, DIFF_CMD, IDEAL_CMD, IDEAL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3869 ,{jjDIFF_ID_ID,DIFF_CMD, MATRIX_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3870 ,{jjDIFF_ID, DIFF_CMD, MODUL_CMD, MODUL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3871 ,{jjDIFF_ID, DIFF_CMD, MATRIX_CMD, MATRIX_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3872 ,{jjDIM2, DIM_CMD, INT_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL |NO_RING}3873 ,{jjDIM2, DIM_CMD, INT_CMD, MODUL_CMD, IDEAL_CMD, ALLOW_PLURAL |NO_RING}3874 ,{jjDIVISION, DIVISION_CMD, LIST_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3875 ,{jjDIVISION, DIVISION_CMD, LIST_CMD, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}3876 ,{jjELIMIN, ELIMINATION_CMD,IDEAL_CMD, IDEAL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3877 ,{jjELIMIN, ELIMINATION_CMD,MODUL_CMD, MODUL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3878 ,{jjELIMIN_IV, ELIMINATION_CMD,IDEAL_CMD, IDEAL_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}3879 ,{jjELIMIN_IV, ELIMINATION_CMD,MODUL_CMD, MODUL_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}3880 ,{jjEXPORTTO, EXPORTTO_CMD, NONE, PACKAGE_CMD, IDHDL, ALLOW_PLURAL |ALLOW_RING}3881 ,{jjEXTGCD_I, EXTGCD_CMD, LIST_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3882 #ifdef HAVE_FACTORY3883 ,{jjEXTGCD_P, EXTGCD_CMD, LIST_CMD, POLY_CMD, POLY_CMD, NO_PLURAL |NO_RING}3884 ,{jjFAC_P2, FAC_CMD, IDEAL_CMD, POLY_CMD, INT_CMD, NO_PLURAL |NO_RING}3885 ,{jjFACSTD2, FACSTD_CMD, LIST_CMD, IDEAL_CMD, IDEAL_CMD, NO_PLURAL |NO_RING}3886 #else3887 ,{jjWRONG2, EXTGCD_CMD, LIST_CMD, POLY_CMD, POLY_CMD, NO_PLURAL |NO_RING}3888 ,{jjWRONG2, FAC_CMD, IDEAL_CMD, POLY_CMD, INT_CMD, NO_PLURAL |NO_RING}3889 ,{jjWRONG2, FACSTD_CMD, LIST_CMD, IDEAL_CMD, IDEAL_CMD, NO_PLURAL |NO_RING}3890 #endif3891 ,{jjFAREY_BI, FAREY_CMD, NUMBER_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL |NO_RING}3892 ,{jjFAREY_ID, FAREY_CMD, ANY_TYPE/*set by p*/,IDEAL_CMD,BIGINT_CMD, ALLOW_PLURAL |NO_RING}3893 ,{jjFAREY_ID, FAREY_CMD, ANY_TYPE/*set by p*/,MODUL_CMD,BIGINT_CMD, ALLOW_PLURAL |NO_RING}3894 ,{jjFAREY_ID, FAREY_CMD, ANY_TYPE/*set by p*/,MATRIX_CMD,BIGINT_CMD, ALLOW_PLURAL |NO_RING}3895 ,{jjFETCH, FETCH_CMD, ANY_TYPE/*set by p*/,RING_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}3896 ,{jjFETCH, FETCH_CMD, ANY_TYPE/*set by p*/,QRING_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}3897 #ifdef HAVE_FACTORY3898 ,{fglmProc, FGLM_CMD, IDEAL_CMD, RING_CMD, DEF_CMD, NO_PLURAL |NO_RING}3899 ,{fglmProc, FGLM_CMD, IDEAL_CMD, QRING_CMD, DEF_CMD, NO_PLURAL |NO_RING}3900 ,{fglmQuotProc,FGLMQUOT_CMD, IDEAL_CMD, IDEAL_CMD, POLY_CMD, NO_PLURAL |NO_RING}3901 #else3902 ,{jjWRONG2, FGLM_CMD, IDEAL_CMD, RING_CMD, DEF_CMD, NO_PLURAL |NO_RING}3903 ,{jjWRONG2, FGLM_CMD, IDEAL_CMD, QRING_CMD, DEF_CMD, NO_PLURAL |NO_RING}3904 ,{jjWRONG2, FGLMQUOT_CMD, IDEAL_CMD, POLY_CMD, IDEAL_CMD, NO_PLURAL |NO_RING}3905 #endif3906 ,{jjFIND2, FIND_CMD, INT_CMD, STRING_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}3907 ,{jjFWALK, FWALK_CMD, IDEAL_CMD, RING_CMD, DEF_CMD, NO_PLURAL |NO_RING}3908 ,{jjGCD_I, GCD_CMD, INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3909 ,{jjGCD_N, GCD_CMD, NUMBER_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL |ALLOW_RING}3910 ,{jjGCD_BI, GCD_CMD, BIGINT_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL |ALLOW_RING}3911 #if defined(HAVE_FACTORY)3912 ,{jjGCD_P, GCD_CMD, POLY_CMD, POLY_CMD, POLY_CMD, NO_PLURAL |NO_RING}3913 #else3914 ,{jjWRONG2, GCD_CMD, POLY_CMD, POLY_CMD, POLY_CMD, NO_PLURAL |NO_RING}3915 #endif3916 ,{jjHILBERT2, HILBERT_CMD, INTVEC_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}3917 ,{jjHILBERT2, HILBERT_CMD, INTVEC_CMD, MODUL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}3918 ,{jjHOMOG1_W, HOMOG_CMD, INT_CMD, IDEAL_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}3919 ,{jjHOMOG1_W, HOMOG_CMD, INT_CMD, MODUL_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}3920 ,{jjHOMOG_P, HOMOG_CMD, POLY_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3921 ,{jjHOMOG_P, HOMOG_CMD, VECTOR_CMD, VECTOR_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3922 ,{jjHOMOG_ID, HOMOG_CMD, IDEAL_CMD, IDEAL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3923 ,{jjHOMOG_ID, HOMOG_CMD, MODUL_CMD, MODUL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}3924 ,{jjRES, HRES_CMD, RESOLUTION_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL |NO_RING}3925 ,{jjCALL2MANY, IDEAL_CMD, IDEAL_CMD, DEF_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}3926 ,{jjFETCH, IMAP_CMD, ANY_TYPE/*set by p*/,RING_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}3927 ,{jjFETCH, IMAP_CMD, ANY_TYPE/*set by p*/,QRING_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}3928 ,{jjIMPORTFROM,IMPORTFROM_CMD, NONE, PACKAGE_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}3929 ,{jjINDEPSET2, INDEPSET_CMD, LIST_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL |NO_RING}3930 ,{lInsert, INSERT_CMD, LIST_CMD, LIST_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}3931 #ifdef HAVE_INTERPOLATION3932 ,{jjINTERPOLATION,INTERPOLATE_CMD,IDEAL_CMD, LIST_CMD, INTVEC_CMD, NO_PLURAL |NO_RING}3933 #endif3934 ,{jjINTERSECT, INTERSECT_CMD, IDEAL_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3935 ,{jjINTERSECT, INTERSECT_CMD, MODUL_CMD, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}3936 ,{jjJanetBasis2, JANET_CMD, IDEAL_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL |NO_RING}3937 ,{jjJET_P, JET_CMD, POLY_CMD, POLY_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3938 ,{jjJET_ID, JET_CMD, IDEAL_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3939 ,{jjJET_P, JET_CMD, VECTOR_CMD, VECTOR_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3940 ,{jjJET_ID, JET_CMD, MODUL_CMD, MODUL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3941 ,{jjJET_ID, JET_CMD, MATRIX_CMD, MATRIX_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3942 ,{jjKBASE2, KBASE_CMD, IDEAL_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3943 ,{jjKBASE2, KBASE_CMD, MODUL_CMD, MODUL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3944 ,{jjKERNEL, KERNEL_CMD, IDEAL_CMD, RING_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}3945 ,{jjKERNEL, KERNEL_CMD, IDEAL_CMD, QRING_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}3946 ,{atKILLATTR2, KILLATTR_CMD, NONE, IDHDL, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}3947 ,{jjKoszul, KOSZUL_CMD, MATRIX_CMD, INT_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}3948 ,{jjKoszul_Id, KOSZUL_CMD, MATRIX_CMD, INT_CMD, IDEAL_CMD, NO_PLURAL |ALLOW_RING}3949 ,{jjRES, KRES_CMD, RESOLUTION_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL |NO_RING}3950 ,{jjLIFT, LIFT_CMD, MATRIX_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3951 ,{jjLIFT, LIFT_CMD, MATRIX_CMD, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}3952 ,{jjLIFTSTD, LIFTSTD_CMD, IDEAL_CMD, IDEAL_CMD, MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}3953 ,{jjLIFTSTD, LIFTSTD_CMD, MODUL_CMD, MODUL_CMD, MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}3954 ,{jjCALL2MANY, LIST_CMD, LIST_CMD, DEF_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}3955 ,{jjLOAD_E, LOAD_CMD, NONE, STRING_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}3956 ,{jjRES, LRES_CMD, RESOLUTION_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL |NO_RING}3957 ,{jjCALL2MANY, MODUL_CMD, MODUL_CMD, DEF_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}3958 ,{jjMODULO, MODULO_CMD, MODUL_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3959 ,{jjMODULO, MODULO_CMD, MODUL_CMD, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}3960 ,{jjMONITOR2, MONITOR_CMD, NONE, LINK_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}3961 //,{jjRES, MRES_CMD, LIST_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}3962 //,{jjRES, MRES_CMD, LIST_CMD, MODUL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}3963 ,{nuMPResMat, MPRES_CMD, MODUL_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL |NO_RING}3964 ,{jjRES, MRES_CMD, RESOLUTION_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3965 ,{jjRES, MRES_CMD, RESOLUTION_CMD, MODUL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3966 //,{nuMPResMat, MPRES_CMD, MODUL_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}3967 ,{jjPFAC2, PFAC_CMD, LIST_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL |ALLOW_RING}3968 ,{jjPFAC2, PFAC_CMD, LIST_CMD, NUMBER_CMD, BIGINT_CMD, ALLOW_PLURAL |ALLOW_RING}3969 ,{jjPFAC2, PFAC_CMD, LIST_CMD, BIGINT_CMD, NUMBER_CMD, ALLOW_PLURAL |ALLOW_RING}3970 ,{jjPFAC2, PFAC_CMD, LIST_CMD, NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL |ALLOW_RING}3971 #ifdef HAVE_PLURAL3972 ,{jjPlural_num_poly, NCALGEBRA_CMD,NONE, POLY_CMD, POLY_CMD , NO_PLURAL |NO_RING}3973 ,{jjPlural_num_mat, NCALGEBRA_CMD,NONE, POLY_CMD, MATRIX_CMD, NO_PLURAL |NO_RING}3974 ,{jjPlural_mat_poly, NCALGEBRA_CMD,NONE, MATRIX_CMD, POLY_CMD , NO_PLURAL |NO_RING}3975 ,{jjPlural_mat_mat, NCALGEBRA_CMD,NONE, MATRIX_CMD, MATRIX_CMD, NO_PLURAL |NO_RING}3976 ,{jjPlural_num_poly, NC_ALGEBRA_CMD,RING_CMD, POLY_CMD, POLY_CMD , NO_PLURAL |NO_RING}3977 ,{jjPlural_num_mat, NC_ALGEBRA_CMD,RING_CMD, POLY_CMD, MATRIX_CMD, NO_PLURAL |NO_RING}3978 ,{jjPlural_mat_poly, NC_ALGEBRA_CMD,RING_CMD, MATRIX_CMD, POLY_CMD , NO_PLURAL |NO_RING}3979 ,{jjPlural_mat_mat, NC_ALGEBRA_CMD,RING_CMD, MATRIX_CMD, MATRIX_CMD, NO_PLURAL |NO_RING}3980 #endif3981 #ifdef HAVE_PLURAL3982 ,{jjOPPOSE, OPPOSE_CMD, ANY_TYPE/*set by p*/, RING_CMD, DEF_CMD, ALLOW_PLURAL |NO_RING}3983 ,{jjOPPOSE, OPPOSE_CMD, ANY_TYPE/*set by p*/, QRING_CMD, DEF_CMD, ALLOW_PLURAL |NO_RING}3984 #endif3985 ,{jjPARSTR2, PARSTR_CMD, STRING_CMD, RING_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3986 ,{jjPARSTR2, PARSTR_CMD, STRING_CMD, QRING_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3987 ,{jjPRINT_FORMAT, PRINT_CMD, ANY_TYPE, DEF_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}3988 ,{jjQUOT, QUOTIENT_CMD, IDEAL_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3989 ,{jjQUOT, QUOTIENT_CMD, MODUL_CMD, MODUL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3990 ,{jjQUOT, QUOTIENT_CMD, IDEAL_CMD, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}3991 ,{jjRANDOM, RANDOM_CMD, INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3992 ,{jjRANK2, RANK_CMD, INT_CMD, MATRIX_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}3993 ,{jjREAD2, READ_CMD, STRING_CMD, LINK_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}3994 ,{jjREDUCE_P, REDUCE_CMD, POLY_CMD, POLY_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3995 ,{jjREDUCE_P, REDUCE_CMD, VECTOR_CMD, VECTOR_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3996 ,{jjREDUCE_P, REDUCE_CMD, VECTOR_CMD, VECTOR_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}3997 ,{jjREDUCE_ID, REDUCE_CMD, IDEAL_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}3998 ,{jjREDUCE_ID, REDUCE_CMD, MODUL_CMD, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}3999 ,{jjREDUCE_ID, REDUCE_CMD, MODUL_CMD, MODUL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}4000 //,{jjRES, RES_CMD, LIST_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}4001 //,{jjRES, RES_CMD, LIST_CMD, MODUL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}4002 ,{jjRES, RES_CMD, RESOLUTION_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}4003 ,{jjRES, RES_CMD, RESOLUTION_CMD, MODUL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}4004 ,{jjSTATUS2, STATUS_CMD, STRING_CMD, LINK_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}4005 ,{jjSTATUS2L, STATUS_CMD, INT_CMD, LIST_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}4006 ,{jjSIMPL_P, SIMPLIFY_CMD, POLY_CMD, POLY_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}4007 ,{jjSIMPL_P, SIMPLIFY_CMD, VECTOR_CMD, VECTOR_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}4008 ,{jjSIMPL_ID, SIMPLIFY_CMD, IDEAL_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}4009 ,{jjSIMPL_ID, SIMPLIFY_CMD, MODUL_CMD, MODUL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}4010 //,{jjRES, SRES_CMD, LIST_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}4011 //,{jjRES, SRES_CMD, LIST_CMD, MODUL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}4012 ,{jjRES, SRES_CMD, RESOLUTION_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}4013 ,{jjRES, SRES_CMD, RESOLUTION_CMD, MODUL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}4014 ,{jjCALL2MANY, SYSTEM_CMD, ANY_TYPE/*set by p*/,STRING_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}4015 ,{jjSTD_1, STD_CMD, IDEAL_CMD, IDEAL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}4016 ,{jjSTD_1, STD_CMD, MODUL_CMD, MODUL_CMD, VECTOR_CMD, ALLOW_PLURAL |ALLOW_RING}4017 ,{jjSTD_1, STD_CMD, IDEAL_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}4018 ,{jjSTD_1, STD_CMD, MODUL_CMD, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}4019 ,{jjSTD_HILB, STD_CMD, IDEAL_CMD, IDEAL_CMD, INTVEC_CMD, NO_PLURAL |ALLOW_RING}4020 ,{jjSTD_HILB, STD_CMD, MODUL_CMD, MODUL_CMD, INTVEC_CMD, NO_PLURAL |ALLOW_RING}4021 ,{jjVARSTR2, VARSTR_CMD, STRING_CMD, RING_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}4022 ,{jjVARSTR2, VARSTR_CMD, STRING_CMD, QRING_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}4023 ,{jjWEDGE, WEDGE_CMD, MATRIX_CMD, MATRIX_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}4024 #ifdef HAVE_FANS4025 ,{jjADDMCONE1, ADDMCONE_CMD, NONE, FAN_CMD, CONE_CMD, ALLOW_PLURAL | ALLOW_RING}4026 ,{jjADDMCONE2, ADDMCONE_CMD, NONE, FAN_CMD, LIST_CMD, ALLOW_PLURAL | ALLOW_RING}4027 ,{jjDELMCONE2, DELMCONE_CMD, NONE, FAN_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}4028 ,{jjDELMCONE3, DELMCONE_CMD, NONE, FAN_CMD, INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING}4029 ,{jjMAXCONE2, MAXCONE_CMD, CONE_CMD, FAN_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}4030 ,{jjGETPROP1, GETPROP_CMD, INT_CMD, FAN_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}4031 ,{jjGETPROP2, GETPROP_CMD, INT_CMD, CONE_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}4032 #endif /* HAVE_FANS */4033 ,{NULL, 0, 0, 0, 0, NO_PLURAL |NO_RING}4034 };4035 3357 /*=================== operations with 1 arg.: static proc =================*/ 4036 3358 static BOOLEAN jjDUMMY(leftv res, leftv u) … … 5576 4898 return TRUE; 5577 4899 } 5578 5579 /*=================== operations with 1 arg.: table =================*/5580 4900 5581 4901 #ifdef INIT_BUG … … 5796 5116 return FALSE; 5797 5117 } 5798 struct sValCmd1 dArith1[]=5799 {5800 // operations:5801 // proc cmd res arg plural5802 {jjPLUSPLUS, PLUSPLUS, NONE, IDHDL , ALLOW_PLURAL |ALLOW_RING}5803 ,{jjPLUSPLUS, MINUSMINUS, NONE, IDHDL , ALLOW_PLURAL |ALLOW_RING}5804 ,{jjUMINUS_I, '-', INT_CMD, INT_CMD , ALLOW_PLURAL |ALLOW_RING}5805 ,{jjUMINUS_BI, '-', BIGINT_CMD, BIGINT_CMD , ALLOW_PLURAL |ALLOW_RING}5806 ,{jjUMINUS_N, '-', NUMBER_CMD, NUMBER_CMD , ALLOW_PLURAL |ALLOW_RING}5807 ,{jjUMINUS_P, '-', POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5808 ,{jjUMINUS_P, '-', VECTOR_CMD, VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5809 ,{jjUMINUS_MA, '-', MATRIX_CMD, MATRIX_CMD , ALLOW_PLURAL |ALLOW_RING}5810 ,{jjUMINUS_IV, '-', INTVEC_CMD, INTVEC_CMD , ALLOW_PLURAL |ALLOW_RING}5811 ,{jjUMINUS_IV, '-', INTMAT_CMD, INTMAT_CMD , ALLOW_PLURAL |ALLOW_RING}5812 ,{jjPROC1, '(', ANY_TYPE/*set by p*/,PROC_CMD , ALLOW_PLURAL |ALLOW_RING}5813 ,{jjLOAD1, '(', NONE, STRING_CMD , ALLOW_PLURAL |ALLOW_RING}5814 // and the procedures with 1 argument:5815 ,{atATTRIB1, ATTRIB_CMD, NONE, DEF_CMD , ALLOW_PLURAL |ALLOW_RING}5816 //,{jjBAREISS_IM, BAREISS_CMD, INTMAT_CMD, INTMAT_CMD , NO_PLURAL |ALLOW_RING}5817 ,{jjBAREISS, BAREISS_CMD, LIST_CMD, MODUL_CMD , NO_PLURAL |ALLOW_RING}5818 ,{jjBETTI, BETTI_CMD, INTMAT_CMD, LIST_CMD , ALLOW_PLURAL |ALLOW_RING}5819 ,{syBetti1, BETTI_CMD, INTMAT_CMD, RESOLUTION_CMD, ALLOW_PLURAL |ALLOW_RING}5820 ,{jjBETTI, BETTI_CMD, INTMAT_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5821 ,{jjBETTI, BETTI_CMD, INTMAT_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5822 ,{jjDUMMY, BIGINT_CMD, BIGINT_CMD, BIGINT_CMD , ALLOW_PLURAL |ALLOW_RING}5823 ,{jjN2BI, BIGINT_CMD, BIGINT_CMD, NUMBER_CMD , ALLOW_PLURAL |ALLOW_RING}5824 ,{jjP2BI, BIGINT_CMD, BIGINT_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5825 ,{jjCHAR, CHARACTERISTIC_CMD, INT_CMD, RING_CMD , ALLOW_PLURAL |ALLOW_RING}5826 ,{jjCHAR, CHARACTERISTIC_CMD, INT_CMD, QRING_CMD , ALLOW_PLURAL |ALLOW_RING}5827 #ifdef HAVE_FACTORY5828 ,{jjCHARSERIES, CHAR_SERIES_CMD, MATRIX_CMD, IDEAL_CMD , NO_PLURAL |NO_RING}5829 #else5830 ,{jjWRONG, CHAR_SERIES_CMD, MATRIX_CMD, IDEAL_CMD , NO_PLURAL |NO_RING}5831 #endif5832 ,{jjrCharStr, CHARSTR_CMD, XS(STRING_CMD), RING_CMD , ALLOW_PLURAL |ALLOW_RING}5833 ,{jjrCharStr, CHARSTR_CMD, XS(STRING_CMD), QRING_CMD , ALLOW_PLURAL |ALLOW_RING}5834 ,{jjOpenClose, CLOSE_CMD, NONE, LINK_CMD , ALLOW_PLURAL |ALLOW_RING}5835 //,{jjWRONG, COLS_CMD, 0, VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5836 ,{jjCOLS, COLS_CMD, INT_CMD, MATRIX_CMD , ALLOW_PLURAL |ALLOW_RING}5837 ,{jjCOLS, COLS_CMD, INT_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5838 ,{jjCOLS, COLS_CMD, INT_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5839 ,{jjCOLS_IV, COLS_CMD, INT_CMD, INTMAT_CMD , ALLOW_PLURAL |ALLOW_RING}5840 ,{jjWRONG, COLS_CMD, 0, INTVEC_CMD , ALLOW_PLURAL |ALLOW_RING}5841 ,{jjCONTENT, CONTENT_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5842 ,{jjCONTENT, CONTENT_CMD, VECTOR_CMD, VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5843 ,{jjCOUNT_BI, COUNT_CMD, INT_CMD, BIGINT_CMD , ALLOW_PLURAL |ALLOW_RING}5844 ,{jjCOUNT_N, COUNT_CMD, INT_CMD, NUMBER_CMD , ALLOW_PLURAL |ALLOW_RING}5845 ,{jjCOUNT_RES, COUNT_CMD, XS(INT_CMD), RESOLUTION_CMD, ALLOW_PLURAL |ALLOW_RING}5846 ,{jjstrlen, COUNT_CMD, XS(INT_CMD), STRING_CMD , ALLOW_PLURAL |ALLOW_RING}5847 ,{jjpLength, COUNT_CMD, XS(INT_CMD), POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5848 ,{jjpLength, COUNT_CMD, XS(INT_CMD), VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5849 ,{jjidElem, COUNT_CMD, XS(INT_CMD), IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5850 ,{jjidElem, COUNT_CMD, XS(INT_CMD), MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5851 ,{jjCOUNT_M, COUNT_CMD, INT_CMD, MATRIX_CMD , ALLOW_PLURAL |ALLOW_RING}5852 ,{jjCOUNT_IV, COUNT_CMD, INT_CMD, INTVEC_CMD , ALLOW_PLURAL |ALLOW_RING}5853 ,{jjCOUNT_IV, COUNT_CMD, INT_CMD, INTMAT_CMD , ALLOW_PLURAL |ALLOW_RING}5854 ,{jjCOUNT_L, COUNT_CMD, INT_CMD, LIST_CMD , ALLOW_PLURAL |ALLOW_RING}5855 ,{jjCOUNT_RG, COUNT_CMD, INT_CMD, RING_CMD , ALLOW_PLURAL |ALLOW_RING}5856 ,{jjNULL, DEF_CMD, DEF_CMD, INT_CMD , ALLOW_PLURAL |ALLOW_RING}5857 ,{jjWRONG, DEF_CMD, 0, ANY_TYPE , ALLOW_PLURAL |ALLOW_RING}5858 ,{jjDEG, DEG_CMD, INT_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5859 ,{jjDEG, DEG_CMD, INT_CMD, VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5860 ,{jjDEG_M, DEG_CMD, INT_CMD, MATRIX_CMD , ALLOW_PLURAL |ALLOW_RING}5861 ,{jjDEGREE, DEGREE_CMD, NONE, IDEAL_CMD , NO_PLURAL |ALLOW_RING}5862 ,{jjDEGREE, DEGREE_CMD, NONE, MODUL_CMD , NO_PLURAL |ALLOW_RING}5863 ,{jjDEFINED, DEFINED_CMD, INT_CMD, DEF_CMD , ALLOW_PLURAL |ALLOW_RING}5864 #ifdef HAVE_FACTORY5865 ,{jjDET_I, DET_CMD, INT_CMD, INTMAT_CMD , ALLOW_PLURAL |ALLOW_RING}5866 ,{jjDET, DET_CMD, POLY_CMD, MATRIX_CMD , NO_PLURAL |NO_RING}5867 ,{jjDET_S, DET_CMD, POLY_CMD, MODUL_CMD , NO_PLURAL |NO_RING}5868 #else5869 ,{jjWRONG, DET_CMD, INT_CMD, INTMAT_CMD , ALLOW_PLURAL |NO_RING}5870 ,{jjmpDetBareiss,DET_CMD, XS(POLY_CMD), MATRIX_CMD , NO_PLURAL |ALLOW_RING}5871 #endif5872 ,{jjDIM, DIM_CMD, INT_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5873 ,{jjDIM, DIM_CMD, INT_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5874 ,{jjDIM_R, DIM_CMD, XS(INT_CMD), RESOLUTION_CMD, ALLOW_PLURAL |ALLOW_RING}5875 ,{jjDUMP, DUMP_CMD, NONE, LINK_CMD , ALLOW_PLURAL |ALLOW_RING}5876 ,{jjE, E_CMD, VECTOR_CMD, INT_CMD , ALLOW_PLURAL |ALLOW_RING}5877 ,{jjEXECUTE, EXECUTE_CMD, NONE, STRING_CMD , ALLOW_PLURAL |ALLOW_RING}5878 ,{jjERROR, ERROR_CMD, NONE, STRING_CMD , ALLOW_PLURAL |ALLOW_RING}5879 #ifdef HAVE_FACTORY5880 ,{jjFAC_P, FAC_CMD, LIST_CMD, POLY_CMD , NO_PLURAL |NO_RING}5881 #else5882 ,{jjWRONG, FAC_CMD, LIST_CMD, POLY_CMD , NO_PLURAL |NO_RING}5883 #endif5884 #ifdef HAVE_FACTORY5885 ,{findUniProc, FINDUNI_CMD, IDEAL_CMD, IDEAL_CMD , NO_PLURAL |NO_RING}5886 #else5887 ,{jjWRONG, FINDUNI_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5888 #endif5889 ,{jjidFreeModule,FREEMODULE_CMD, XS(MODUL_CMD), INT_CMD , ALLOW_PLURAL |ALLOW_RING}5890 #ifdef HAVE_FACTORY5891 ,{jjFACSTD, FACSTD_CMD, LIST_CMD, IDEAL_CMD , NO_PLURAL |NO_RING}5892 #else5893 ,{jjWRONG, FACSTD_CMD, LIST_CMD, IDEAL_CMD , NO_PLURAL |NO_RING}5894 #endif5895 ,{jjGETDUMP, GETDUMP_CMD, NONE, LINK_CMD , ALLOW_PLURAL |ALLOW_RING}5896 ,{jjHIGHCORNER, HIGHCORNER_CMD, POLY_CMD, IDEAL_CMD , NO_PLURAL |ALLOW_RING}5897 ,{jjHIGHCORNER_M, HIGHCORNER_CMD,VECTOR_CMD, MODUL_CMD , NO_PLURAL |ALLOW_RING}5898 ,{jjHILBERT, HILBERT_CMD, NONE, IDEAL_CMD , NO_PLURAL |ALLOW_RING}5899 ,{jjHILBERT, HILBERT_CMD, NONE, MODUL_CMD , NO_PLURAL |ALLOW_RING}5900 ,{jjHILBERT_IV, HILBERT_CMD, INTVEC_CMD, INTVEC_CMD , NO_PLURAL |ALLOW_RING}5901 ,{jjHOMOG1, HOMOG_CMD, INT_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5902 ,{jjHOMOG1, HOMOG_CMD, INT_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5903 ,{jjDUMMY, IDEAL_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5904 ,{jjidVec2Ideal,IDEAL_CMD, XS(IDEAL_CMD), VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5905 ,{jjIDEAL_Ma, IDEAL_CMD, IDEAL_CMD, MATRIX_CMD , ALLOW_PLURAL |ALLOW_RING}5906 ,{jjIDEAL_R, IDEAL_CMD, IDEAL_CMD, QRING_CMD , ALLOW_PLURAL |ALLOW_RING}5907 ,{jjIDEAL_R, IDEAL_CMD, IDEAL_CMD, RING_CMD , ALLOW_PLURAL |ALLOW_RING}5908 ,{jjIDEAL_Map, IDEAL_CMD, IDEAL_CMD, MAP_CMD , ALLOW_PLURAL |ALLOW_RING}5909 ,{jjIMPART, IMPART_CMD, NUMBER_CMD, NUMBER_CMD , ALLOW_PLURAL |ALLOW_RING}5910 ,{jjINDEPSET, INDEPSET_CMD, INTVEC_CMD, IDEAL_CMD , NO_PLURAL |NO_RING}5911 ,{jjDUMMY, INT_CMD, INT_CMD, INT_CMD , ALLOW_PLURAL |ALLOW_RING}5912 ,{jjnlInt, INT_CMD, INT_CMD, BIGINT_CMD , ALLOW_PLURAL |ALLOW_RING}5913 ,{jjnInt, INT_CMD, INT_CMD, NUMBER_CMD , ALLOW_PLURAL |ALLOW_RING}5914 ,{jjP2I, INT_CMD, INT_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5915 ,{jjINTERRED, INTERRED_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5916 ,{jjINTERRED, INTERRED_CMD, MODUL_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5917 ,{jjDUMMY, INTMAT_CMD, INTMAT_CMD, INTMAT_CMD , ALLOW_PLURAL |ALLOW_RING}5918 ,{jjIm2Iv, INTVEC_CMD, INTVEC_CMD, INTMAT_CMD , ALLOW_PLURAL |ALLOW_RING}5919 ,{jjDUMMY, INTVEC_CMD, INTVEC_CMD, INTVEC_CMD , ALLOW_PLURAL |ALLOW_RING}5920 ,{jjIS_RINGVAR_P, IS_RINGVAR, INT_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5921 ,{jjIS_RINGVAR_S, IS_RINGVAR, INT_CMD, STRING_CMD , ALLOW_PLURAL |ALLOW_RING}5922 ,{jjIS_RINGVAR0,IS_RINGVAR, INT_CMD, ANY_TYPE , ALLOW_PLURAL |ALLOW_RING}5923 ,{jjJACOB_P, JACOB_CMD, IDEAL_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5924 ,{mpJacobi, JACOB_CMD, MATRIX_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5925 ,{jjJACOB_M, JACOB_CMD, MODUL_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5926 ,{jjJanetBasis, JANET_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_PLURAL |NO_RING}5927 ,{jjKBASE, KBASE_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5928 ,{jjKBASE, KBASE_CMD, MODUL_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5929 ,{jjLU_DECOMP, LU_CMD, LIST_CMD, MATRIX_CMD , NO_PLURAL |NO_RING}5930 ,{jjPFAC1, PFAC_CMD, LIST_CMD, BIGINT_CMD , ALLOW_PLURAL |ALLOW_RING}5931 ,{jjPFAC1, PFAC_CMD, LIST_CMD, NUMBER_CMD , ALLOW_PLURAL |ALLOW_RING}5932 ,{atKILLATTR1, KILLATTR_CMD, NONE, IDHDL , ALLOW_PLURAL |ALLOW_RING}5933 #ifdef MDEBUG5934 ,{jjpHead, LEAD_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5935 #else5936 ,{jjpHead, LEAD_CMD, XS(POLY_CMD), POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5937 #endif5938 ,{jjidHead, LEAD_CMD, XS(IDEAL_CMD), IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5939 #ifdef MDEBUG5940 ,{jjpHead, LEAD_CMD, VECTOR_CMD, VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5941 #else5942 ,{jjpHead, LEAD_CMD, XS(VECTOR_CMD), VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5943 #endif5944 ,{jjidHead, LEAD_CMD, XS(MODUL_CMD), MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5945 ,{jjLEADCOEF, LEADCOEF_CMD, NUMBER_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5946 ,{jjLEADCOEF, LEADCOEF_CMD, NUMBER_CMD, VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5947 ,{jjLEADEXP, LEADEXP_CMD, INTVEC_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5948 ,{jjLEADEXP, LEADEXP_CMD, INTVEC_CMD, VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5949 ,{jjLEADMONOM, LEADMONOM_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5950 ,{jjLEADMONOM, LEADMONOM_CMD, VECTOR_CMD, VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5951 ,{jjLOAD1, LIB_CMD, NONE, STRING_CMD , ALLOW_PLURAL |ALLOW_RING}5952 ,{jjDUMMY, LINK_CMD, LINK_CMD, LINK_CMD , ALLOW_PLURAL |ALLOW_RING}5953 ,{jjCALL1MANY, LIST_CMD, LIST_CMD, DEF_CMD , ALLOW_PLURAL |ALLOW_RING}5954 ,{jjWRONG, MAP_CMD, 0, ANY_TYPE , ALLOW_PLURAL |ALLOW_RING}5955 ,{jjDUMMY, MATRIX_CMD, MATRIX_CMD, MATRIX_CMD , ALLOW_PLURAL |ALLOW_RING}5956 ,{jjidMaxIdeal, MAXID_CMD, XS(IDEAL_CMD), INT_CMD , ALLOW_PLURAL |ALLOW_RING}5957 ,{jjMEMORY, MEMORY_CMD, BIGINT_CMD, INT_CMD , ALLOW_PLURAL |ALLOW_RING}5958 ,{jjidMinBase, MINBASE_CMD, XS(IDEAL_CMD), IDEAL_CMD , NO_PLURAL |ALLOW_RING}5959 ,{jjidMinBase, MINBASE_CMD, XS(MODUL_CMD), MODUL_CMD , NO_PLURAL |ALLOW_RING}5960 ,{jjMINRES, MINRES_CMD, LIST_CMD, LIST_CMD , ALLOW_PLURAL |ALLOW_RING}5961 ,{jjMINRES_R, MINRES_CMD, RESOLUTION_CMD, RESOLUTION_CMD, ALLOW_PLURAL |ALLOW_RING}5962 ,{jjDUMMY, MODUL_CMD, MODUL_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5963 ,{jjMONITOR1, MONITOR_CMD, NONE, LINK_CMD , ALLOW_PLURAL |ALLOW_RING}5964 ,{jjMONOM, MONOM_CMD, POLY_CMD, INTVEC_CMD , ALLOW_PLURAL |ALLOW_RING}5965 ,{jjMULT, MULTIPLICITY_CMD, INT_CMD, IDEAL_CMD , NO_PLURAL |ALLOW_RING}5966 ,{jjMULT, MULTIPLICITY_CMD, INT_CMD, MODUL_CMD , NO_PLURAL |ALLOW_RING}5967 ,{jjMSTD, MSTD_CMD, LIST_CMD, IDEAL_CMD , NO_PLURAL |ALLOW_RING}5968 ,{jjMSTD, MSTD_CMD, LIST_CMD, MODUL_CMD , NO_PLURAL |ALLOW_RING}5969 ,{jjNAMEOF, NAMEOF_CMD, STRING_CMD, ANY_TYPE , ALLOW_PLURAL |ALLOW_RING}5970 ,{jjNAMES, NAMES_CMD, LIST_CMD, PACKAGE_CMD , ALLOW_PLURAL |ALLOW_RING}5971 ,{jjNAMES, NAMES_CMD, LIST_CMD, RING_CMD , ALLOW_PLURAL |ALLOW_RING}5972 ,{jjNAMES, NAMES_CMD, LIST_CMD, QRING_CMD , ALLOW_PLURAL |ALLOW_RING}5973 ,{jjDUMMY, NUMBER_CMD, NUMBER_CMD, NUMBER_CMD , ALLOW_PLURAL |ALLOW_RING}5974 ,{jjP2N, NUMBER_CMD, NUMBER_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5975 ,{jjBI2N, NUMBER_CMD, NUMBER_CMD, BIGINT_CMD , ALLOW_PLURAL |ALLOW_RING}5976 ,{jjRPAR, NPARS_CMD, INT_CMD, RING_CMD , ALLOW_PLURAL |ALLOW_RING}5977 ,{jjRPAR, NPARS_CMD, INT_CMD, QRING_CMD , ALLOW_PLURAL |ALLOW_RING}5978 ,{jjNVARS, NVARS_CMD, INT_CMD, RING_CMD , ALLOW_PLURAL |ALLOW_RING}5979 ,{jjNVARS, NVARS_CMD, INT_CMD, QRING_CMD , ALLOW_PLURAL |ALLOW_RING}5980 ,{jjOpenClose, OPEN_CMD, NONE, LINK_CMD , ALLOW_PLURAL |ALLOW_RING}5981 ,{jjORD, ORD_CMD, INT_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5982 ,{jjORD, ORD_CMD, INT_CMD, VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}5983 ,{jjrOrdStr, ORDSTR_CMD, XS(STRING_CMD), RING_CMD , ALLOW_PLURAL |ALLOW_RING}5984 ,{jjrOrdStr, ORDSTR_CMD, XS(STRING_CMD), QRING_CMD , ALLOW_PLURAL |ALLOW_RING}5985 ,{jjPAR1, PAR_CMD, NUMBER_CMD, INT_CMD , ALLOW_PLURAL |ALLOW_RING}5986 ,{jjPARDEG, PARDEG_CMD, INT_CMD, NUMBER_CMD , ALLOW_PLURAL |ALLOW_RING}5987 ,{jjPARSTR1, PARSTR_CMD, STRING_CMD, INT_CMD , ALLOW_PLURAL |ALLOW_RING}5988 ,{jjrParStr, PARSTR_CMD, XS(STRING_CMD), RING_CMD , ALLOW_PLURAL |ALLOW_RING}5989 ,{jjrParStr, PARSTR_CMD, XS(STRING_CMD), QRING_CMD , ALLOW_PLURAL |ALLOW_RING}5990 ,{jjDUMMY, POLY_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}5991 ,{jjBI2P, POLY_CMD, POLY_CMD, BIGINT_CMD , ALLOW_PLURAL |ALLOW_RING}5992 ,{jjPREIMAGE_R, PREIMAGE_CMD, RING_CMD, MAP_CMD , NO_PLURAL |ALLOW_RING}5993 ,{jjPRIME, PRIME_CMD, INT_CMD, INT_CMD , ALLOW_PLURAL |ALLOW_RING}5994 ,{jjPRINT, PRINT_CMD, NONE, LIST_CMD , ALLOW_PLURAL |ALLOW_RING}5995 ,{jjPRINT, PRINT_CMD, NONE, DEF_CMD , ALLOW_PLURAL |ALLOW_RING}5996 ,{jjPRUNE, PRUNE_CMD, MODUL_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5997 ,{kQHWeight, QHWEIGHT_CMD, INTVEC_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}5998 ,{kQHWeight, QHWEIGHT_CMD, INTVEC_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}5999 ,{jjWRONG, QRING_CMD, 0, ANY_TYPE , ALLOW_PLURAL |ALLOW_RING}6000 ,{jjRANK1, RANK_CMD, INT_CMD, MATRIX_CMD , ALLOW_PLURAL |ALLOW_RING}6001 ,{jjREAD, READ_CMD, STRING_CMD, LINK_CMD , ALLOW_PLURAL |ALLOW_RING}6002 ,{jjREGULARITY, REGULARITY_CMD, INT_CMD, LIST_CMD , NO_PLURAL |ALLOW_RING}6003 ,{jjREPART, REPART_CMD, NUMBER_CMD, NUMBER_CMD , ALLOW_PLURAL |ALLOW_RING}6004 ,{jjRESERVEDNAME,RESERVEDNAME_CMD, INT_CMD, STRING_CMD , ALLOW_PLURAL |ALLOW_RING}6005 ,{jjL2R, RESOLUTION_CMD, RESOLUTION_CMD, LIST_CMD , ALLOW_PLURAL |ALLOW_RING}6006 ,{jjDUMMY, RESOLUTION_CMD, RESOLUTION_CMD, RESOLUTION_CMD, ALLOW_PLURAL |ALLOW_RING}6007 ,{jjRINGLIST, RINGLIST_CMD, LIST_CMD, RING_CMD , ALLOW_PLURAL |ALLOW_RING}6008 ,{jjRINGLIST, RINGLIST_CMD, LIST_CMD, QRING_CMD , ALLOW_PLURAL |ALLOW_RING}6009 ,{jjDUMMY, RING_CMD, RING_CMD, RING_CMD , ALLOW_PLURAL |ALLOW_RING}6010 ,{jjLISTRING, RING_CMD, RING_CMD, LIST_CMD , ALLOW_PLURAL |ALLOW_RING}6011 //,{jjWRONG, ROWS_CMD, 0, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}6012 ,{jjpMaxComp, ROWS_CMD, XS(INT_CMD), VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}6013 ,{jjROWS, ROWS_CMD, INT_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}6014 ,{jjROWS, ROWS_CMD, INT_CMD, MATRIX_CMD , ALLOW_PLURAL |ALLOW_RING}6015 ,{jjROWS_IV, ROWS_CMD, INT_CMD, INTMAT_CMD , ALLOW_PLURAL |ALLOW_RING}6016 ,{jjCOUNT_IV, ROWS_CMD, INT_CMD, INTVEC_CMD , ALLOW_PLURAL |ALLOW_RING}6017 ,{jjSLIM_GB, SLIM_GB_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_PLURAL }6018 ,{jjSLIM_GB, SLIM_GB_CMD, MODUL_CMD, MODUL_CMD , ALLOW_PLURAL }6019 ,{jjSort_Id, SORTVEC_CMD, INTVEC_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}6020 ,{jjSort_Id, SORTVEC_CMD, INTVEC_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}6021 #ifdef HAVE_FACTORY6022 ,{jjSQR_FREE, SQR_FREE_CMD, IDEAL_CMD, POLY_CMD , NO_PLURAL |ALLOW_RING}6023 #else6024 ,{jjWRONG, SQR_FREE_CMD, IDEAL_CMD, POLY_CMD , NO_PLURAL |ALLOW_RING}6025 #endif6026 ,{jjSTD, STD_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}6027 ,{jjSTD, STD_CMD, MODUL_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}6028 ,{jjDUMMY, STRING_CMD, STRING_CMD, STRING_CMD , ALLOW_PLURAL |ALLOW_RING}6029 ,{jjSYSTEM, SYSTEM_CMD, NONE, STRING_CMD , ALLOW_PLURAL |ALLOW_RING}6030 ,{jjSYZYGY, SYZYGY_CMD, MODUL_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}6031 ,{jjSYZYGY, SYZYGY_CMD, MODUL_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}6032 #ifdef HAVE_PLURAL6033 ,{jjENVELOPE, ENVELOPE_CMD, RING_CMD, RING_CMD , ALLOW_PLURAL |NO_RING}6034 ,{jjENVELOPE, ENVELOPE_CMD, QRING_CMD, QRING_CMD , ALLOW_PLURAL |NO_RING}6035 ,{jjOPPOSITE, OPPOSITE_CMD, RING_CMD, RING_CMD , ALLOW_PLURAL |NO_RING}6036 ,{jjOPPOSITE, OPPOSITE_CMD, QRING_CMD, QRING_CMD , ALLOW_PLURAL |NO_RING}6037 ,{jjTWOSTD, TWOSTD_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_PLURAL |NO_RING}6038 #endif6039 ,{jjWRONG, TRACE_CMD, 0, INTVEC_CMD , ALLOW_PLURAL |ALLOW_RING}6040 ,{jjWRONG, TRACE_CMD, 0, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}6041 ,{jjTRACE_IV, TRACE_CMD, INT_CMD, INTMAT_CMD , ALLOW_PLURAL |ALLOW_RING}6042 ,{jjmpTrace, TRACE_CMD, XS(POLY_CMD), MATRIX_CMD , ALLOW_PLURAL |ALLOW_RING}6043 ,{jjTRANSP_IV, TRANSPOSE_CMD, INTMAT_CMD, INTVEC_CMD , ALLOW_PLURAL |ALLOW_RING}6044 ,{jjTRANSP_IV, TRANSPOSE_CMD, INTMAT_CMD, INTMAT_CMD , ALLOW_PLURAL |ALLOW_RING}6045 ,{jjmpTransp, TRANSPOSE_CMD, XS(MATRIX_CMD), MATRIX_CMD , ALLOW_PLURAL |ALLOW_RING}6046 ,{jjidTransp, TRANSPOSE_CMD, XS(MODUL_CMD), MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}6047 ,{jjTYPEOF, TYPEOF_CMD, STRING_CMD, ANY_TYPE , ALLOW_PLURAL |ALLOW_RING}6048 ,{jjUNIVARIATE, UNIVARIATE_CMD, INT_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}6049 ,{jjVARIABLES_P,VARIABLES_CMD, IDEAL_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}6050 ,{jjVARIABLES_ID,VARIABLES_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}6051 ,{jjVARIABLES_ID,VARIABLES_CMD, IDEAL_CMD, MATRIX_CMD , ALLOW_PLURAL |ALLOW_RING}6052 ,{jjDUMMY, VECTOR_CMD, VECTOR_CMD, VECTOR_CMD , ALLOW_PLURAL |ALLOW_RING}6053 ,{jjVDIM, VDIM_CMD, INT_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}6054 ,{jjVDIM, VDIM_CMD, INT_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}6055 ,{jjVAR1, VAR_CMD, POLY_CMD, INT_CMD , ALLOW_PLURAL |ALLOW_RING}6056 ,{jjVARSTR1, VARSTR_CMD, STRING_CMD, INT_CMD , ALLOW_PLURAL |ALLOW_RING}6057 ,{jjrVarStr, VARSTR_CMD, XS(STRING_CMD), RING_CMD , ALLOW_PLURAL |ALLOW_RING}6058 ,{jjrVarStr, VARSTR_CMD, XS(STRING_CMD), QRING_CMD , ALLOW_PLURAL |ALLOW_RING}6059 ,{kWeight, WEIGHT_CMD, INTVEC_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}6060 ,{kWeight, WEIGHT_CMD, INTVEC_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING}6061 ,{jjLOAD1, LOAD_CMD, NONE, STRING_CMD , ALLOW_PLURAL |ALLOW_RING}6062 ,{loNewtonP, NEWTONPOLY_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING}6063 #ifdef HAVE_FANS6064 ,{jjDELMCONE1, DELMCONE_CMD, NONE, FAN_CMD , ALLOW_PLURAL |ALLOW_RING}6065 ,{jjMAXRAYS1, MAXRAYS_CMD, INTMAT_CMD, FAN_CMD , ALLOW_PLURAL |ALLOW_RING}6066 ,{jjMAXRAYS2, MAXRAYS_CMD, INTMAT_CMD, CONE_CMD , ALLOW_PLURAL |ALLOW_RING}6067 ,{jjFACETNS1, FACETNS_CMD, INTMAT_CMD, FAN_CMD , ALLOW_PLURAL |ALLOW_RING}6068 ,{jjFACETNS2, FACETNS_CMD, INTMAT_CMD, CONE_CMD , ALLOW_PLURAL |ALLOW_RING}6069 ,{jjLINSPACE, LINSPACE_CMD, INTMAT_CMD, FAN_CMD , ALLOW_PLURAL |ALLOW_RING}6070 ,{jjMAXCONE1, MAXCONE_CMD, LIST_CMD, FAN_CMD , ALLOW_PLURAL |ALLOW_RING}6071 ,{jjADJACENCY1, ADJACENCY_CMD, INTMAT_CMD, FAN_CMD , ALLOW_PLURAL |ALLOW_RING}6072 #endif /* HAVE_FANS */6073 ,{NULL, 0, 0, 0 , NO_PLURAL |NO_RING}6074 };6075 5118 /*=================== operations with 3 args.: static proc =================*/ 6076 5119 static BOOLEAN jjBRACK_S(leftv res, leftv u, leftv v,leftv w) … … 7225 6268 } 7226 6269 7227 /*=================== operations with 3 args.: table =================*/7228 struct sValCmd3 dArith3[]=7229 {7230 // operations:7231 // proc cmd res arg1 arg2 arg3 plural7232 {jjBRACK_S, '[', STRING_CMD, STRING_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7233 ,{jjBRACK_Im, '[', INT_CMD, INTMAT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7234 ,{jjBRACK_Ma_I_IV, '[', INT_CMD, INTMAT_CMD, INT_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7235 ,{jjBRACK_Ma_IV_I, '[', INT_CMD, INTMAT_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7236 ,{jjBRACK_Ma_IV_IV, '[', INT_CMD, INTMAT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7237 ,{jjBRACK_Ma, '[', POLY_CMD, MATRIX_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7238 ,{jjBRACK_Ma_I_IV, '[', POLY_CMD, MATRIX_CMD, INT_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7239 ,{jjBRACK_Ma_IV_I, '[', POLY_CMD, MATRIX_CMD, INTVEC_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7240 ,{jjBRACK_Ma_IV_IV, '[', POLY_CMD, MATRIX_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7241 ,{jjPROC3, '(', ANY_TYPE, PROC_CMD, DEF_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}7242 ,{atATTRIB3, ATTRIB_CMD, NONE, IDHDL, STRING_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}7243 ,{jjBAREISS3, BAREISS_CMD,LIST_CMD, MODUL_CMD, INT_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}7244 ,{jjCOEFFS3_P, COEFFS_CMD, MATRIX_CMD, POLY_CMD, POLY_CMD, MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}7245 ,{jjCOEFFS3_P, COEFFS_CMD, MATRIX_CMD, VECTOR_CMD, POLY_CMD, MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}7246 ,{jjCOEFFS3_Id, COEFFS_CMD, MATRIX_CMD, IDEAL_CMD, POLY_CMD, MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}7247 ,{jjCOEFFS3_Id, COEFFS_CMD, MATRIX_CMD, MODUL_CMD, POLY_CMD, MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}7248 ,{jjCOEFFS3_KB, COEFFS_CMD, MATRIX_CMD, IDEAL_CMD, IDEAL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}7249 ,{jjCOEFFS3_KB, COEFFS_CMD, MATRIX_CMD, MODUL_CMD, MODUL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}7250 ,{jjELIMIN_HILB, ELIMINATION_CMD,IDEAL_CMD, IDEAL_CMD, POLY_CMD, INTVEC_CMD, NO_PLURAL |ALLOW_RING}7251 ,{jjELIMIN_HILB, ELIMINATION_CMD,MODUL_CMD, MODUL_CMD, POLY_CMD, INTVEC_CMD, NO_PLURAL |ALLOW_RING}7252 ,{jjFIND3, FIND_CMD, INT_CMD, STRING_CMD, STRING_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7253 ,{jjFWALK3, FWALK_CMD, IDEAL_CMD, RING_CMD, DEF_CMD, INT_CMD, NO_PLURAL |ALLOW_RING}7254 ,{jjHILBERT3, HILBERT_CMD,INTVEC_CMD, IDEAL_CMD, INT_CMD, INTVEC_CMD, NO_PLURAL |ALLOW_RING}7255 ,{jjHILBERT3, HILBERT_CMD,INTVEC_CMD, MODUL_CMD, INT_CMD, INTVEC_CMD, NO_PLURAL |ALLOW_RING}7256 ,{jjHOMOG_P_W, HOMOG_CMD, POLY_CMD, POLY_CMD, POLY_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7257 ,{jjHOMOG_P_W, HOMOG_CMD, VECTOR_CMD, VECTOR_CMD, POLY_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7258 ,{jjHOMOG_ID_W, HOMOG_CMD, IDEAL_CMD, IDEAL_CMD, POLY_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7259 ,{jjHOMOG_ID_W, HOMOG_CMD, MODUL_CMD, MODUL_CMD, POLY_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7260 ,{jjCALL3MANY, IDEAL_CMD, IDEAL_CMD, DEF_CMD, DEF_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}7261 ,{lInsert3, INSERT_CMD, LIST_CMD, LIST_CMD, DEF_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7262 //,{jjCALL3MANY, INTERSECT_CMD, NONE, DEF_CMD, DEF_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}7263 ,{jjINTMAT3, INTMAT_CMD, INTMAT_CMD, INTMAT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7264 ,{jjCALL3MANY, INTVEC_CMD, INTVEC_CMD, DEF_CMD, DEF_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}7265 ,{jjJET_P_IV, JET_CMD, POLY_CMD, POLY_CMD, INT_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7266 ,{jjJET_ID_IV, JET_CMD, IDEAL_CMD, IDEAL_CMD, INT_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7267 ,{jjJET_P_IV, JET_CMD, VECTOR_CMD, VECTOR_CMD, INT_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7268 ,{jjJET_ID_IV, JET_CMD, MODUL_CMD, MODUL_CMD, INT_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}7269 ,{jjJET_P_P, JET_CMD, POLY_CMD, POLY_CMD, POLY_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7270 ,{jjJET_P_P, JET_CMD, VECTOR_CMD, VECTOR_CMD, POLY_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7271 ,{jjJET_ID_M, JET_CMD, IDEAL_CMD, IDEAL_CMD, MATRIX_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7272 ,{jjJET_ID_M, JET_CMD, MODUL_CMD, MODUL_CMD, MATRIX_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7273 ,{jjWRONG3, JET_CMD, POLY_CMD, POLY_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7274 ,{mpKoszul, KOSZUL_CMD, MATRIX_CMD, INT_CMD, INT_CMD, IDEAL_CMD, NO_PLURAL |NO_RING}7275 ,{jjLIFTSTD3, LIFTSTD_CMD,IDEAL_CMD, IDEAL_CMD, MATRIX_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}7276 ,{jjLIFTSTD3, LIFTSTD_CMD,MODUL_CMD, MODUL_CMD, MATRIX_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}7277 ,{jjCALL3MANY, LIST_CMD, LIST_CMD, DEF_CMD, DEF_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}7278 ,{jjMATRIX_Id, MATRIX_CMD, MATRIX_CMD, IDEAL_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7279 ,{jjMATRIX_Mo, MATRIX_CMD, MATRIX_CMD, MODUL_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7280 ,{jjMATRIX_Ma, MATRIX_CMD, MATRIX_CMD, MATRIX_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7281 ,{jjCALL3MANY, MODUL_CMD, MODUL_CMD, DEF_CMD, DEF_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}7282 #ifdef OLD_RES7283 ,{jjRES3, MRES_CMD, NONE, IDEAL_CMD, INT_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}7284 ,{jjRES3, MRES_CMD, NONE, MODUL_CMD, INT_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}7285 #endif7286 ,{jjLIFT3, LIFT_CMD, MATRIX_CMD, IDEAL_CMD, IDEAL_CMD, MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}7287 ,{jjLIFT3, LIFT_CMD, MATRIX_CMD, MODUL_CMD, MODUL_CMD, MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}7288 ,{jjPREIMAGE, PREIMAGE_CMD, IDEAL_CMD, RING_CMD, ANY_TYPE, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}7289 ,{jjPREIMAGE, PREIMAGE_CMD, IDEAL_CMD, QRING_CMD, ANY_TYPE, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}7290 ,{jjRANDOM_Im, RANDOM_CMD, INTMAT_CMD, INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7291 ,{jjREDUCE3_P, REDUCE_CMD, POLY_CMD, POLY_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7292 ,{jjREDUCE3_P, REDUCE_CMD, VECTOR_CMD, VECTOR_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7293 ,{jjREDUCE3_P, REDUCE_CMD, VECTOR_CMD, VECTOR_CMD, MODUL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7294 ,{jjREDUCE3_ID, REDUCE_CMD, IDEAL_CMD, IDEAL_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7295 ,{jjREDUCE3_ID, REDUCE_CMD, MODUL_CMD, MODUL_CMD, MODUL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7296 ,{jjREDUCE3_ID, REDUCE_CMD, MODUL_CMD, MODUL_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}7297 ,{jjREDUCE3_CP, REDUCE_CMD, POLY_CMD, POLY_CMD, POLY_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}7298 ,{jjREDUCE3_CP, REDUCE_CMD, VECTOR_CMD, VECTOR_CMD, POLY_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}7299 ,{jjREDUCE3_CID, REDUCE_CMD, IDEAL_CMD, IDEAL_CMD, IDEAL_CMD, MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}7300 ,{jjREDUCE3_CID, REDUCE_CMD, MODUL_CMD, MODUL_CMD, MODUL_CMD, MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}7301 #ifdef OLD_RES7302 ,{jjRES3, RES_CMD, NONE, IDEAL_CMD, INT_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}7303 ,{jjRES3, RES_CMD, NONE, MODUL_CMD, INT_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}7304 #endif7305 #ifdef HAVE_FACTORY7306 ,{jjRESULTANT, RESULTANT_CMD, POLY_CMD,POLY_CMD, POLY_CMD, POLY_CMD, NO_PLURAL |ALLOW_RING}7307 #else7308 ,{jjWRONG3, RESULTANT_CMD, POLY_CMD,POLY_CMD, POLY_CMD, POLY_CMD, NO_PLURAL |ALLOW_RING}7309 #endif7310 ,{jjRING3, RING_CMD, RING_CMD, DEF_CMD, DEF_CMD, DEF_CMD, ALLOW_PLURAL |ALLOW_RING}7311 #ifdef OLD_RES7312 ,{jjRES3, SRES_CMD, NONE, IDEAL_CMD, INT_CMD, ANY_TYPE, NO_PLURAL |ALLOW_RING}7313 ,{jjRES3, SRES_CMD, NONE, MODUL_CMD, INT_CMD, ANY_TYPE, NO_PLURAL |ALLOW_RING}7314 #endif7315 ,{jjSTATUS3, STATUS_CMD, INT_CMD, LINK_CMD, STRING_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}7316 ,{jjSTD_HILB_W, STD_CMD, IDEAL_CMD, IDEAL_CMD, INTVEC_CMD, INTVEC_CMD, NO_PLURAL |ALLOW_RING}7317 ,{jjSTD_HILB_W, STD_CMD, MODUL_CMD, MODUL_CMD, INTVEC_CMD, INTVEC_CMD, NO_PLURAL |ALLOW_RING}7318 ,{jjSUBST_P, SUBST_CMD, POLY_CMD, POLY_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}7319 ,{jjSUBST_P, SUBST_CMD, POLY_CMD, POLY_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}7320 ,{jjSUBST_P, SUBST_CMD, VECTOR_CMD, VECTOR_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}7321 ,{jjSUBST_Id, SUBST_CMD, IDEAL_CMD, IDEAL_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}7322 ,{jjSUBST_Id, SUBST_CMD, MODUL_CMD, MODUL_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}7323 ,{jjSUBST_Id, SUBST_CMD, MATRIX_CMD, MATRIX_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING}7324 ,{jjSUBST_Id_I, SUBST_CMD, MATRIX_CMD, MATRIX_CMD, POLY_CMD, INT_CMD , ALLOW_PLURAL |ALLOW_RING}7325 ,{jjSUBST_Id_N, SUBST_CMD, MATRIX_CMD, MATRIX_CMD, POLY_CMD, NUMBER_CMD , ALLOW_PLURAL |ALLOW_RING}7326 ,{jjCALL3MANY, SYSTEM_CMD, NONE, STRING_CMD, DEF_CMD, DEF_CMD , ALLOW_PLURAL |ALLOW_RING}7327 ,{nuLagSolve, LAGSOLVE_CMD,LIST_CMD, POLY_CMD, INT_CMD, INT_CMD , NO_PLURAL |NO_RING}7328 ,{nuVanderSys, VANDER_CMD, POLY_CMD, IDEAL_CMD, IDEAL_CMD, INT_CMD , NO_PLURAL |NO_RING}7329 #ifdef HAVE_FANS7330 ,{jjSETPROP1, SETPROP_CMD,NONE, FAN_CMD, STRING_CMD, INT_CMD , NO_PLURAL |NO_RING}7331 ,{jjSETPROP2, SETPROP_CMD,NONE, CONE_CMD, STRING_CMD, INT_CMD , NO_PLURAL |NO_RING}7332 ,{jjADJACENCY2, ADJACENCY_CMD,CONE_CMD, FAN_CMD, INT_CMD, INT_CMD , NO_PLURAL |NO_RING}7333 #endif /* HAVE_FANS */7334 ,{NULL, 0, 0, 0, 0, 0 , NO_PLURAL |NO_RING}7335 };7336 6270 /*=================== operations with many arg.: static proc =================*/ 7337 6271 static BOOLEAN jjBREAK0(leftv res, leftv v) … … 8393 7327 8394 7328 8395 /*=================== operations with many arg.: table =================*/8396 /* number_of_args: -1: any, -2: any >0, .. */8397 struct sValCmdM dArithM[]=8398 {8399 // operations:8400 // proc cmd res number_of_args plural8401 {jjKLAMMER_PL, '(', ANY_TYPE, -2 , ALLOW_PLURAL |ALLOW_RING}8402 ,{jjBREAK0, BREAKPOINT_CMD, NONE, 0 , ALLOW_PLURAL |ALLOW_RING}8403 ,{jjBREAK1, BREAKPOINT_CMD, NONE, -2 , ALLOW_PLURAL |ALLOW_RING}8404 ,{jjCALL2ARG, COEF_CMD, MATRIX_CMD, 2 , ALLOW_PLURAL |ALLOW_RING}8405 ,{jjCOEF_M, COEF_CMD, NONE, 4 , ALLOW_PLURAL |ALLOW_RING}8406 ,{jjCALL2ARG, DIVISION_CMD, ANY_TYPE/*or set by p*/,2 , ALLOW_PLURAL |ALLOW_RING}8407 ,{jjDIVISION4, DIVISION_CMD, ANY_TYPE/*or set by p*/,3 , NO_PLURAL |NO_RING}8408 ,{jjDIVISION4, DIVISION_CMD, ANY_TYPE/*or set by p*/,4 , NO_PLURAL |NO_RING}8409 ,{jjDBPRINT, DBPRINT_CMD, NONE, -2 , ALLOW_PLURAL |ALLOW_RING}8410 //,{jjEXPORTTO_M, EXPORTTO_CMD, NONE, -2 , ALLOW_PLURAL |ALLOW_RING}8411 ,{jjCALL1ARG, IDEAL_CMD, IDEAL_CMD, 1 , ALLOW_PLURAL |ALLOW_RING}8412 ,{jjIDEAL_PL, IDEAL_CMD, IDEAL_CMD, -1 , ALLOW_PLURAL |ALLOW_RING}8413 ,{jjCALL2ARG, INTERSECT_CMD, IDEAL_CMD, 2 , ALLOW_PLURAL |ALLOW_RING}8414 ,{jjINTERSECT_PL,INTERSECT_CMD, IDEAL_CMD, -2 , ALLOW_PLURAL |ALLOW_RING}8415 ,{jjCALL1ARG, INTVEC_CMD, INTVEC_CMD, 1 , ALLOW_PLURAL |ALLOW_RING}8416 ,{jjINTVEC_PL, INTVEC_CMD, INTVEC_CMD, -2 , ALLOW_PLURAL |ALLOW_RING}8417 ,{jjCALL2ARG, JET_CMD, POLY_CMD,/*or set by p*/ 2 , ALLOW_PLURAL |ALLOW_RING}8418 ,{jjCALL3ARG, JET_CMD, POLY_CMD,/*or set by p*/ 3 , ALLOW_PLURAL |ALLOW_RING}8419 ,{jjJET4, JET_CMD, POLY_CMD,/*or set by p*/ 4 , ALLOW_PLURAL |ALLOW_RING}8420 ,{jjLIST_PL, LIST_CMD, LIST_CMD, -1 , ALLOW_PLURAL |ALLOW_RING}8421 ,{jjLU_INVERSE,LUI_CMD, LIST_CMD, -2 , NO_PLURAL |NO_RING}8422 ,{jjLU_SOLVE, LUS_CMD, LIST_CMD, -2 , NO_PLURAL |NO_RING}8423 ,{jjWRONG, MINOR_CMD, NONE, 1 , ALLOW_PLURAL |ALLOW_RING}8424 ,{jjMINOR_M, MINOR_CMD, IDEAL_CMD, -2 , ALLOW_PLURAL |ALLOW_RING}8425 ,{jjCALL1ARG, MODUL_CMD, MODUL_CMD, 1 , ALLOW_PLURAL |ALLOW_RING}8426 ,{jjIDEAL_PL, MODUL_CMD, MODUL_CMD, -1 , ALLOW_PLURAL |ALLOW_RING}8427 ,{jjCALL1ARG, NAMES_CMD, LIST_CMD, 1 , ALLOW_PLURAL |ALLOW_RING}8428 ,{jjNAMES0, NAMES_CMD, LIST_CMD, 0 , ALLOW_PLURAL |ALLOW_RING}8429 ,{jjOPTION_PL, OPTION_CMD, STRING_CMD/*or set by p*/,-1, ALLOW_PLURAL |ALLOW_RING}8430 ,{jjCALL2ARG, REDUCE_CMD, IDEAL_CMD/*or set by p*/, 2, ALLOW_PLURAL |ALLOW_RING}8431 ,{jjCALL3ARG, REDUCE_CMD, IDEAL_CMD/*or set by p*/, 3, ALLOW_PLURAL |ALLOW_RING}8432 ,{jjREDUCE4, REDUCE_CMD, IDEAL_CMD/*or set by p*/, 4, ALLOW_PLURAL |ALLOW_RING}8433 ,{jjREDUCE5, REDUCE_CMD, IDEAL_CMD/*or set by p*/, 5, ALLOW_PLURAL |ALLOW_RING}8434 ,{jjCALL1ARG, RESERVEDNAME_CMD, INT_CMD, 1 , ALLOW_PLURAL |ALLOW_RING}8435 ,{jjRESERVED0, RESERVEDNAME_CMD, NONE, 0 , ALLOW_PLURAL |ALLOW_RING}8436 ,{jjSTRING_PL, STRING_CMD, STRING_CMD, -1 , ALLOW_PLURAL |ALLOW_RING}8437 ,{jjCALL3ARG, SUBST_CMD, NONE/*set by p*/, 3 , ALLOW_PLURAL |ALLOW_RING}8438 ,{jjSUBST_M, SUBST_CMD, NONE/*set by p*/, -2 , ALLOW_PLURAL |ALLOW_RING}8439 ,{jjSYSTEM, SYSTEM_CMD, NONE/*or set by p*/,-2 , ALLOW_PLURAL |ALLOW_RING}8440 ,{jjTEST, TEST_CMD, NONE, -2 , ALLOW_PLURAL |ALLOW_RING}8441 ,{iiWRITE, WRITE_CMD, NONE, -2 , ALLOW_PLURAL |ALLOW_RING}8442 ,{jjCALL2ARG, STATUS_CMD, STRING_CMD, 2 , ALLOW_PLURAL |ALLOW_RING}8443 ,{jjCALL3ARG, STATUS_CMD, INT_CMD, 3 , ALLOW_PLURAL |ALLOW_RING}8444 ,{jjSTATUS_M, STATUS_CMD, INT_CMD, 4 , ALLOW_PLURAL |ALLOW_RING}8445 ,{loSimplex, SIMPLEX_CMD, LIST_CMD, 6 , NO_PLURAL |NO_RING}8446 ,{nuUResSolve, URSOLVE_CMD, LIST_CMD, 4 , NO_PLURAL |NO_RING}8447 ,{jjCALL1ARG, STD_CMD, IDEAL_CMD, 1 , ALLOW_PLURAL |ALLOW_RING}8448 ,{jjCALL2ARG, STD_CMD, IDEAL_CMD, 2 , ALLOW_PLURAL |ALLOW_RING}8449 ,{jjCALL3ARG, STD_CMD, IDEAL_CMD, 3 , NO_PLURAL |ALLOW_RING}8450 ,{jjSTD_HILB_WP, STD_CMD, IDEAL_CMD, 4 , NO_PLURAL |ALLOW_RING}8451 #ifdef HAVE_FANS8452 ,{jjADDADJ, ADDADJ_CMD, NONE, -2 , NO_PLURAL |NO_RING}8453 #endif /* HAVE_FANS */8454 ,{NULL, 0, 0, 0 , NO_PLURAL |NO_RING}8455 };8456 7329 #ifdef MDEBUG 8457 7330 static Subexpr jjDBMakeSub(leftv e,const char *f,const int l) … … 8465 7338 return r; 8466 7339 } 8467 8468 /*================ generating tables ============================*/ 8469 #ifdef GENTABLE 8470 extern struct sValAssign dAssign[]; 8471 struct sValCmdTab dArithTab1[]={ {0,0}}; 8472 #define JJTAB1LEN 0 8473 struct sValCmdTab dArithTab2[]={ {0,0}}; 8474 #define JJTAB2LEN 0 8475 8476 char *iparith_inc; 8477 void ttGen1() 8478 { 8479 iparith_inc=omStrDup("iparith.xxxxxx"); 8480 int pid=getpid(); 8481 iparith_inc[8]=(pid %10)+'0'; pid/=10; 8482 iparith_inc[9]=(pid %10)+'0'; pid/=10; 8483 iparith_inc[10]=(pid %10)+'0'; pid/=10; 8484 iparith_inc[11]=(pid %10)+'0'; pid/=10; 8485 iparith_inc[12]=(pid %10)+'0'; pid/=10; 8486 iparith_inc[13]=(pid %10)+'0'; 8487 FILE *outfile = myfopen(iparith_inc,"w"); 8488 int i,j,l1=0,l2=0; 8489 currRing=(ring)omAllocBin(sip_sring_bin); 8490 fprintf(outfile, 8491 "/****************************************\n" 8492 "* Computer Algebra System SINGULAR *\n" 8493 "****************************************/\n\n"); 8494 /*-------------------------------------------------------------------*/ 8495 fprintf(outfile,"// syntax table for Singular\n//\n"); 8496 fprintf(outfile,"// - search for an exact match of the argument types\n"); 8497 fprintf(outfile,"// - otherwise search for the first possibility\n"); 8498 fprintf(outfile,"// with converted types of the arguments\n"); 8499 fprintf(outfile,"// - otherwise report an error\n//\n"); 8500 8501 int op; 8502 i=0; 8503 while ((op=dArith1[i].cmd)!=0) 8504 { 8505 if (dArith1[i].p==jjWRONG) 8506 fprintf(outfile,"// DUMMY "); 8507 const char *s = iiTwoOps(op); 8508 fprintf(outfile,"// operation: %s (%s) -> %s\n", 8509 s, 8510 Tok2Cmdname(dArith1[i].arg), 8511 Tok2Cmdname(ABS(dArith1[i].res))); 8512 i++; 8513 } 8514 fprintf(outfile,"/*---------------------------------------------*/\n"); 8515 i=0; 8516 while ((op=dArith2[i].cmd)!=0) 8517 { 8518 if (dArith2[i].p==jjWRONG2) 8519 fprintf(outfile,"// DUMMY "); 8520 const char *s = iiTwoOps(op); 8521 fprintf(outfile,"// operation: %s (%s, %s) -> %s\n", 8522 s, 8523 Tok2Cmdname(dArith2[i].arg1), 8524 Tok2Cmdname(dArith2[i].arg2), 8525 Tok2Cmdname(dArith2[i].res)); 8526 i++; 8527 } 8528 fprintf(outfile,"/*---------------------------------------------*/\n"); 8529 i=0; 8530 while ((op=dArith3[i].cmd)!=0) 8531 { 8532 const char *s = iiTwoOps(op); 8533 if (dArith3[i].p==jjWRONG3) 8534 fprintf(outfile,"// DUMMY "); 8535 fprintf(outfile,"// operation: %s (%s, %s, %s) -> %s\n", 8536 s, 8537 Tok2Cmdname(dArith3[i].arg1), 8538 Tok2Cmdname(dArith3[i].arg2), 8539 Tok2Cmdname(dArith3[i].arg3), 8540 Tok2Cmdname(dArith3[i].res)); 8541 i++; 8542 } 8543 fprintf(outfile,"/*---------------------------------------------*/\n"); 8544 i=0; 8545 while ((op=dArithM[i].cmd)!=0) 8546 { 8547 const char *s = iiTwoOps(op); 8548 fprintf(outfile,"// operation: %s (...) -> %s", 8549 s, 8550 Tok2Cmdname(dArithM[i].res)); 8551 switch(dArithM[i].number_of_args) 8552 { 8553 case -2: 8554 fprintf(outfile," ( number of arguments >0 )\n"); 8555 break; 8556 case -1: 8557 fprintf(outfile," ( any number of arguments )\n"); 8558 break; 8559 default: 8560 fprintf(outfile," ( %d arguments )\n",dArithM[i].number_of_args); 8561 break; 8562 } 8563 i++; 8564 } 8565 fprintf(outfile,"/*---------------------------------------------*/\n"); 8566 i=0; 8567 while ((op=dAssign[i].res)!=0) 8568 { 8569 fprintf(outfile,"// assign: %s = %s\n", 8570 Tok2Cmdname(op/*dAssign[i].res*/), 8571 Tok2Cmdname(dAssign[i].arg)); 8572 i++; 8573 } 8574 /*-------------------------------------------------------------------*/ 8575 fprintf(outfile,"/*---------------------------------------------*/\n"); 8576 for (j=257;j<=MAX_TOK+1;j++) 8577 { 8578 for(i=257;i<=MAX_TOK+1;i++) 8579 { 8580 if ((i!=j) && (j!=IDHDL) && (j!=DEF_CMD) && (j!=ANY_TYPE) 8581 && iiTestConvert(i,j)) 8582 { 8583 fprintf(outfile,"// convert %s -> %s\n", 8584 Tok2Cmdname(i), Tok2Cmdname(j)); 8585 if (j==ANY_TYPE) break; 8586 } 8587 } 8588 } 8589 fprintf(outfile,"/*---------------------------------------------*/\n"); 8590 char ops[]="=><+*/[.^,%(;"; 8591 for(i=0;ops[i]!='\0';i++) 8592 fprintf(outfile,"// token %d : %c\n", (int)ops[i], ops[i]); 8593 for (i=257;i<=MAX_TOK;i++) 8594 { 8595 const char *s=iiTwoOps(i); 8596 if (s[0]!='$') 8597 { 8598 fprintf(outfile,"// token %d : %s\n", i, s); 8599 } 8600 } 8601 /*-------------------------------------------------------------------*/ 8602 fprintf(outfile,"/*--max. token: %d, gr: %d --*/\n",MAX_TOK,UMINUS); 8603 /*-------------------------------------------------------------------*/ 8604 fprintf(outfile,"/*---------------------------------------------*/\n"); 8605 fprintf(outfile, 8606 "struct sValCmdTab dArithTab1[]=\n" 8607 "{\n"); 8608 for (j=1;j<=MAX_TOK+1;j++) 8609 { 8610 for(i=0;dArith1[i].cmd!=0;i++) 8611 { 8612 if (dArith1[i].cmd==j) 8613 { 8614 fprintf(outfile," { %d,%d },\n",j,i); 8615 l1++; 8616 break; 8617 } 8618 } 8619 } 8620 fprintf(outfile," { 10000,0 }\n};\n"); 8621 fprintf(outfile,"#define JJTAB1LEN %d\n",l1); 8622 /*-------------------------------------------------------------------*/ 8623 fprintf(outfile, 8624 "struct sValCmdTab dArithTab2[]=\n" 8625 "{\n"); 8626 for (j=1;j<=MAX_TOK+1;j++) 8627 { 8628 for(i=0;dArith2[i].cmd!=0;i++) 8629 { 8630 if (dArith2[i].cmd==j) 8631 { 8632 fprintf(outfile," { %d,%d },\n",j,i); 8633 l2++; 8634 break; 8635 } 8636 } 8637 } 8638 fprintf(outfile," { 10000,0 }\n};\n"); 8639 fprintf(outfile,"#define JJTAB2LEN %d\n",l2); 8640 fclose(outfile); 8641 } 8642 /*-------------------------------------------------------------------*/ 8643 #if 0 8644 void ttGen2() 8645 { 8646 FILE *outfile = myfopen(iparith_inc,"a"); 8647 fprintf(outfile, 8648 "/****************************************\n" 8649 "* Computer Algebra System SINGULAR *\n" 8650 "****************************************/\n\n"); 8651 /*-------------------------------------------------------------------*/ 8652 fprintf(outfile,"// identifier table for Singular\n//\n"); 8653 8654 fprintf(outfile, 8655 "cmdnames OLDcmds[] =\n" 8656 "{ // name-string alias tokval toktype\n" 8657 "{ \"$INVALID$\", 0, -1, 0},\n"); 8658 int i=1; 8659 int m=-1; 8660 int id_nr=0; 8661 BOOLEAN f=FALSE; 8662 loop 8663 { 8664 while (cmds[i].tokval!=0) 8665 { 8666 if ((cmds[i].tokval!=-1)&&(cmds[i].name!=NULL)) 8667 { 8668 if(m==-1) 8669 { 8670 m=i; 8671 f=TRUE; 8672 } 8673 else if(strcmp(cmds[m].name,cmds[i].name)>0) 8674 { 8675 m=i; 8676 f=TRUE; 8677 } 8678 } 8679 i++; 8680 } 8681 if(f) 8682 { 8683 id_nr++; 8684 if(cmds[m].tokval==VRTIMER) fprintf(outfile,"#ifdef HAVE_RTIMER\n"); 8685 fprintf(outfile," {\"%s\", %*d, %3d, ",cmds[m].name, 8686 20-strlen(cmds[m].name), 8687 cmds[m].alias, 8688 cmds[m].tokval); 8689 switch(cmds[m].toktype) 8690 { 8691 case CMD_1: fprintf(outfile,"CMD_1 },\n"); break; 8692 case CMD_2: fprintf(outfile,"CMD_2 },\n"); break; 8693 case CMD_3: fprintf(outfile,"CMD_3 },\n"); break; 8694 case CMD_12: fprintf(outfile,"CMD_12 },\n"); break; 8695 case CMD_123 : fprintf(outfile,"CMD_123 },\n"); break; 8696 case CMD_23: fprintf(outfile,"CMD_23 },\n"); break; 8697 case CMD_M: fprintf(outfile,"CMD_M },\n"); break; 8698 case SYSVAR: fprintf(outfile,"SYSVAR },\n"); break; 8699 case ROOT_DECL: fprintf(outfile,"ROOT_DECL },\n"); break; 8700 case ROOT_DECL_LIST: fprintf(outfile,"ROOT_DECL_LIST },\n"); break; 8701 case RING_DECL: fprintf(outfile,"RING_DECL },\n"); break; 8702 case NONE: fprintf(outfile,"NONE },\n"); break; 8703 default: if((cmds[m].toktype>' ') 8704 &&(cmds[m].toktype<127)) 8705 { 8706 fprintf(outfile,"'%c' },\n",cmds[m].toktype); 8707 } 8708 else 8709 { 8710 fprintf(outfile,"%d },\n",cmds[m].toktype); 8711 } 8712 break; 8713 } 8714 if(cmds[m].tokval==VRTIMER) fprintf(outfile,"#endif\n"); 8715 cmds[m].name=NULL; 8716 m=-1; 8717 i=1; 8718 f=FALSE; 8719 } 8720 else break; 8721 } 8722 fprintf(outfile, 8723 "/* list of scanner identifiers/only for feread/reservedName */\n"); 8724 f=FALSE; 8725 i=1;m=-1; 8726 loop 8727 { 8728 while (cmds[i].tokval!=0) 8729 { 8730 if (cmds[i].name!=NULL) 8731 { 8732 if(m==-1) 8733 { 8734 m=i; 8735 f=TRUE; 8736 } 8737 else if(strcmp(cmds[m].name,cmds[i].name)>0) 8738 { 8739 m=i; 8740 f=TRUE; 8741 } 8742 } 8743 i++; 8744 } 8745 if(f) 8746 { 8747 fprintf(outfile," {\"%s\", %*d, -1, 0 },\n",cmds[m].name, 8748 20-strlen(cmds[m].name), 8749 0/*cmds[m].alias*/ 8750 /*-1 cmds[m].tokval*/ 8751 /*0 cmds[m].toktype*/); 8752 cmds[m].name=NULL; 8753 m=-1; 8754 i=1; 8755 f=FALSE; 8756 } 8757 else break; 8758 } 8759 fprintf(outfile, 8760 "/* end of list marker */\n" 8761 " { NULL, 0, 0, 0}\n" 8762 "};\n" 8763 "#ifdef HAVE_RTIMER\n" 8764 "#define LAST_IDENTIFIER %d\n" 8765 "#else\n" 8766 "#define LAST_IDENTIFIER %d\n" 8767 "#endif\n",id_nr,id_nr-1); 8768 fclose(outfile); 8769 } 8770 #endif 8771 /*---------------------------------------------------------------------*/ 8772 /** 8773 * @brief generate cmds initialisation 8774 **/ 8775 /*---------------------------------------------------------------------*/ 8776 8777 void ttGen2b() 8778 { 8779 int cmd_size = (sizeof(cmds)/sizeof(cmdnames))-1; 8780 8781 FILE *outfile = myfopen(iparith_inc,"a"); 8782 fprintf(outfile, 8783 "/****************************************\n" 8784 "* Computer Algebra System SINGULAR *\n" 8785 "****************************************/\n\n"); 8786 /*-------------------------------------------------------------------*/ 8787 fprintf(outfile,"// identifier table for Singular\n//\n"); 8788 8789 fprintf( 8790 outfile, 8791 "#ifdef MODULE_GENERATOR\n" 8792 "#define omAlloc0(A) malloc(A)\n" 8793 "#endif\n" 8794 "void iiInitCmdName()\n{\n" 8795 " sArithBase.nCmdUsed = 0;\n" 8796 " sArithBase.nCmdAllocated = %d;\n" 8797 " sArithBase.sCmds = (cmdnames*)omAlloc0(sArithBase.nCmdAllocated*sizeof(cmdnames));\n" 8798 "\n" 8799 " // name-string alias tokval toktype index\n", 8800 cmd_size); 8801 int m=0; 8802 int id_nr=0; 8803 8804 qsort(&cmds, cmd_size, sizeof(cmdnames), (&_gentable_sort_cmds)); 8805 8806 for(m=0; m<cmd_size; m++) 8807 { 8808 if(cmds[m].tokval>0) id_nr++; 8809 if(cmds[m].tokval==VRTIMER) fprintf(outfile,"#ifdef HAVE_RTIMER\n"); 8810 fprintf(outfile," iiArithAddCmd(\"%s\", %*d, %3d, ",cmds[m].name, 8811 20-strlen(cmds[m].name), 8812 cmds[m].alias, 8813 cmds[m].tokval); 8814 switch(cmds[m].toktype) 8815 { 8816 case CMD_1: fprintf(outfile,"CMD_1"); break; 8817 case CMD_2: fprintf(outfile,"CMD_2"); break; 8818 case CMD_3: fprintf(outfile,"CMD_3"); break; 8819 case CMD_12: fprintf(outfile,"CMD_12"); break; 8820 case CMD_123 : fprintf(outfile,"CMD_123"); break; 8821 case CMD_23: fprintf(outfile,"CMD_23"); break; 8822 case CMD_M: fprintf(outfile,"CMD_M"); break; 8823 case SYSVAR: fprintf(outfile,"SYSVAR"); break; 8824 case ROOT_DECL: fprintf(outfile,"ROOT_DECL"); break; 8825 case ROOT_DECL_LIST: fprintf(outfile,"ROOT_DECL_LIST"); break; 8826 case RING_DECL: fprintf(outfile,"RING_DECL"); break; 8827 case NONE: fprintf(outfile,"NONE"); break; 8828 default: 8829 if((cmds[m].toktype>' ') &&(cmds[m].toktype<127)) 8830 { 8831 fprintf(outfile,"'%c'",cmds[m].toktype); 8832 } 8833 else 8834 { 8835 fprintf(outfile,"%d",cmds[m].toktype); 8836 } 8837 break; 8838 #if 0 8839 fprintf(outfile," iiArithAddCmd(\"%s\", %*d, -1, 0 );\n", 8840 cmds[m].name, 20-strlen(cmds[m].name), 8841 0/*cmds[m].alias*/ 8842 /*-1 cmds[m].tokval*/ 8843 /*0 cmds[m].toktype*/); 8844 #endif 8845 } 8846 fprintf(outfile,", %d);\n", m); 8847 if(cmds[m].tokval==VRTIMER) fprintf(outfile,"#endif\n"); 8848 } 8849 fprintf(outfile, "/* end of list marker */\n"); 8850 fprintf(outfile, 8851 "#ifdef HAVE_RTIMER\n" 8852 " sArithBase.nLastIdentifier = %d;\n" 8853 "#else /* HAVE_RTIMER */\n" 8854 " sArithBase.nLastIdentifier = %d;\n" 8855 "#endif /* HAVE_RTIMER */\n", 8856 id_nr,id_nr-1); 8857 8858 8859 fprintf(outfile, 8860 "}\n" 8861 "#ifdef HAVE_RTIMER\n" 8862 "#define LAST_IDENTIFIER %d\n" 8863 "#else\n" 8864 "#define LAST_IDENTIFIER %d\n" 8865 "#endif\n",id_nr,id_nr-1); 8866 fclose(outfile); 8867 } 8868 /*-------------------------------------------------------------------*/ 8869 #if 0 8870 void ttGen3() 8871 { 8872 FILE *outfile = myfopen("mpsr_tok.inc","w"); 8873 fprintf(outfile, 8874 "/****************************************\n" 8875 "* Computer Algebra System SINGULAR *\n" 8876 "****************************************/\n\n"); 8877 /*-------------------------------------------------------------------*/ 8878 fprintf(outfile,"// token table for Singular\n//\n"); 8879 8880 fprintf(outfile, 8881 "short vtok[] =\n" 8882 "{\n"); 8883 // operations with 1 arg: =========================================== 8884 int i=0; 8885 while (dArith1[i].cmd!=0) 8886 { 8887 if ((dArith1[i].p!=jjWRONG) 8888 &&((i==0)||(dArith1[i].cmd!=dArith1[i-1].cmd))) 8889 { 8890 fprintf(outfile," %d,\n",dArith1[i].cmd); 8891 } 8892 i++; 8893 } 8894 // operations with 2 args: =========================================== 8895 i=0; 8896 while (dArith2[i].cmd!=0) 8897 { 8898 if ((dArith2[i].p!=jjWRONG2) 8899 &&((i==0)||(dArith2[i].cmd!=dArith2[i-1].cmd))) 8900 { 8901 fprintf(outfile," %d,\n",dArith2[i].cmd); 8902 } 8903 i++; 8904 } 8905 // operations with 3 args: =========================================== 8906 i=0; 8907 while (dArith3[i].cmd!=0) 8908 { 8909 if ( 8910 ((i==0)||(dArith3[i].cmd!=dArith3[i-1].cmd))) 8911 { 8912 fprintf(outfile," %d,\n",dArith3[i].cmd); 8913 } 8914 i++; 8915 } 8916 // operations with many args: =========================================== 8917 i=0; 8918 while (dArithM[i].cmd!=0) 8919 { 8920 if ( 8921 ((i==0)||(dArithM[i].cmd!=dArithM[i-1].cmd))) 8922 { 8923 fprintf(outfile," %d,\n",dArithM[i].cmd); 8924 } 8925 i++; 8926 } 8927 // ==================================================================== 8928 fprintf(outfile, 8929 "/* end of list marker */\n" 8930 " %d };\n",MAX_TOK); 8931 fclose(outfile); 8932 } 8933 #endif 8934 void ttGen4() 8935 { 8936 FILE *outfile = myfopen("plural_cmd.xx","w"); 8937 int i; 8938 const char *old_s=""; 8939 fprintf(outfile, 8940 "@c *****************************************\n" 8941 "@c * Computer Algebra System SINGULAR *\n" 8942 "@c *****************************************\n\n"); 8943 /*-------------------------------------------------------------------*/ 8944 fprintf(outfile,"@multicolumn .45 .45\n"); 8945 int op; 8946 i=0; 8947 while ((op=dArith1[i].cmd)!=0) 8948 { 8949 if (dArith1[i].p!=jjWRONG) 8950 { 8951 const char *s = iiTwoOps(op); 8952 if ((s!=NULL) && (isalpha(s[0])) && (strcmp(s,old_s)!=0)) 8953 { 8954 old_s=s; 8955 #ifdef HAVE_PLURAL 8956 switch (dArith1[i].valid_for & PLURAL_MASK) 8957 { 8958 case NO_PLURAL: 8959 fprintf(outfile,"@item @ref{%s} @tab @code{---}\n",s); 8960 break; 8961 case ALLOW_PLURAL: 8962 fprintf(outfile,"@item @ref{%s} @tab @ref{%s (plural)}\n",s,s); 8963 break; 8964 case COMM_PLURAL: 8965 fprintf(outfile,"@item @ref{%s} @tab %s\n",s,s); 8966 break; 8967 } 8968 #endif 8969 #ifdef HAVE_RINGS 8970 #endif 8971 } 8972 } 8973 i++; 8974 } 8975 fprintf(outfile,"@c ---------------------------------------------\n"); 8976 i=0; 8977 while ((op=dArith2[i].cmd)!=0) 8978 { 8979 if (dArith2[i].p!=jjWRONG2) 8980 { 8981 const char *s = iiTwoOps(op); 8982 if ((s!=NULL) && (isalpha(s[0])) && (strcmp(s,old_s)!=0)) 8983 { 8984 old_s=s; 8985 #ifdef HAVE_PLURAL 8986 switch (dArith2[i].valid_for & PLURAL_MASK) 8987 { 8988 case NO_PLURAL: 8989 fprintf(outfile,"@item @ref{%s} @tab @code{---}\n",s); 8990 break; 8991 case ALLOW_PLURAL: 8992 fprintf(outfile,"@item @ref{%s} @tab @ref{%s (plural)}\n",s,s); 8993 break; 8994 case COMM_PLURAL: 8995 fprintf(outfile,"@item @ref{%s} @tab %s\n",s,s); 8996 break; 8997 } 8998 #endif 8999 #ifdef HAVE_RINGS 9000 #endif 9001 } 9002 } 9003 i++; 9004 } 9005 fprintf(outfile,"@c ---------------------------------------------\n"); 9006 i=0; 9007 while ((op=dArith3[i].cmd)!=0) 9008 { 9009 const char *s = iiTwoOps(op); 9010 if (dArith3[i].p!=jjWRONG3) 9011 { 9012 if ((s!=NULL) && (isalpha(s[0])) && (strcmp(s,old_s)!=0)) 9013 { 9014 old_s=s; 9015 #ifdef HAVE_PLURAL 9016 switch (dArith3[i].valid_for & PLURAL_MASK) 9017 { 9018 case NO_PLURAL: 9019 fprintf(outfile,"@item @ref{%s} @tab @code{---}\n",s); 9020 break; 9021 case ALLOW_PLURAL: 9022 fprintf(outfile,"@item @ref{%s} @tab @ref{%s (plural)}\n",s,s); 9023 break; 9024 case COMM_PLURAL: 9025 fprintf(outfile,"@item @ref{%s} @tab %s\n",s,s); 9026 break; 9027 } 9028 #endif 9029 #ifdef HAVE_RINGS 9030 #endif 9031 } 9032 } 9033 i++; 9034 } 9035 fprintf(outfile,"@c ---------------------------------------------\n"); 9036 i=0; 9037 while ((op=dArithM[i].cmd)!=0) 9038 { 9039 const char *s = iiTwoOps(op); 9040 if ((s!=NULL) && (isalpha(s[0])) && (strcmp(s,old_s)!=0)) 9041 { 9042 old_s=s; 9043 #ifdef HAVE_PLURAL 9044 switch (dArithM[i].valid_for & PLURAL_MASK) 9045 { 9046 case NO_PLURAL: 9047 fprintf(outfile,"@item @ref{%s} @tab @code{---}\n",s); 9048 break; 9049 case ALLOW_PLURAL: 9050 fprintf(outfile,"@item @ref{%s} @tab @ref{%s (plural)}\n",s,s); 9051 break; 9052 case COMM_PLURAL: 9053 fprintf(outfile,"@item @ref{%s} @tab %s\n",s,s); 9054 break; 9055 } 9056 #endif 9057 #ifdef HAVE_RINGS 9058 #endif 9059 } 9060 i++; 9061 } 9062 fprintf(outfile,"@c ---------------------------------------------\n"); 9063 fprintf(outfile,"@end table\n"); 9064 fclose(outfile); 9065 } 9066 /*-------------------------------------------------------------------*/ 9067 #else 7340 #define D(A) (A) 7341 #define IPARITH 7342 #include "table.h" 7343 9068 7344 #include <iparith.inc> 9069 #endif9070 7345 9071 7346 /*=================== operations with 2 args. ============================*/ … … 9073 7348 BOOLEAN iiExprArith2(leftv res, leftv a, int op, leftv b, BOOLEAN proccall) 9074 7349 { 9075 #ifndef GENTABLE9076 7350 memset(res,0,sizeof(sleftv)); 9077 7351 BOOLEAN call_failed=FALSE; … … 9280 7554 a->CleanUp(); 9281 7555 b->CleanUp(); 9282 #endif9283 7556 return TRUE; 9284 7557 } … … 9288 7561 BOOLEAN iiExprArith1(leftv res, leftv a, int op) 9289 7562 { 9290 #ifndef GENTABLE9291 7563 memset(res,0,sizeof(sleftv)); 9292 7564 BOOLEAN call_failed=FALSE; … … 9475 7747 } 9476 7748 a->CleanUp(); 9477 #endif9478 7749 return TRUE; 9479 7750 } … … 9483 7754 BOOLEAN iiExprArith3(leftv res, int op, leftv a, leftv b, leftv c) 9484 7755 { 9485 #ifndef GENTABLE9486 7756 memset(res,0,sizeof(sleftv)); 9487 7757 BOOLEAN call_failed=FALSE; … … 9690 7960 c->CleanUp(); 9691 7961 //Print("op: %d,result typ:%d\n",op,res->rtyp); 9692 #endif9693 7962 return TRUE; 9694 7963 } … … 9712 7981 BOOLEAN iiExprArithM(leftv res, leftv a, int op) 9713 7982 { 9714 #ifndef GENTABLE9715 7983 memset(res,0,sizeof(sleftv)); 9716 7984 … … 9830 8098 if (a!=NULL) a->CleanUp(); 9831 8099 //Print("op: %d,result typ:%d\n",op,res->rtyp); 9832 #endif9833 8100 return TRUE; 9834 8101 } … … 9837 8104 int IsCmd(const char *n, int & tok) 9838 8105 { 9839 #ifndef GENTABLE9840 8106 int i; 9841 8107 int an=1; … … 9930 8196 } 9931 8197 return sArithBase.sCmds[i].toktype; 9932 #else9933 return 0;9934 #endif9935 8198 } 9936 8199 static int iiTabIndex(const jjValCmdTab dArithTab, const int len, const int op) 9937 8200 { 9938 #ifndef GENTABLE9939 8201 int a=0; 9940 8202 int e=len; … … 9949 8211 while ( a <= e); 9950 8212 9951 #endif9952 8213 assume(0); 9953 8214 return 0; 9954 8215 } 9955 8216 9956 #ifdef GENTABLE9957 const char * Tok2Cmdname(int tok)9958 {9959 int i = 0;9960 if (tok < 0)9961 {9962 return cmds[0].name;9963 }9964 if (tok==COMMAND) return "command";9965 if (tok==ANY_TYPE) return "any_type";9966 if (tok==NONE) return "nothing";9967 //if (tok==IFBREAK) return "if_break";9968 //if (tok==VECTOR_FROM_POLYS) return "vector_from_polys";9969 //if (tok==ORDER_VECTOR) return "ordering";9970 //if (tok==REF_VAR) return "ref";9971 //if (tok==OBJECT) return "object";9972 //if (tok==PRINT_EXPR) return "print_expr";9973 if (tok==IDHDL) return "identifier";9974 while (cmds[i].tokval!=0)9975 {9976 if ((cmds[i].tokval == tok)&&(cmds[i].alias==0))9977 {9978 return cmds[i].name;9979 }9980 i++;9981 }9982 return cmds[0].name;9983 }9984 #else /* GENTABLE */9985 8217 const char * Tok2Cmdname(int tok) 9986 8218 { … … 10011 8243 return sArithBase.sCmds[0].name; 10012 8244 } 10013 #endif /* GENTABLE */10014 8245 10015 8246 … … 10065 8296 int i; 10066 8297 //printf("iiInitArithmetic()\n"); 10067 #ifndef GENTABLE10068 8298 memset(&sArithBase, 0, sizeof(sArithBase)); 10069 8299 iiInitCmdName(); … … 10095 8325 //iiArithRemoveCmd("mygcd"); 10096 8326 //iiArithAddCmd("kkk", 1, 1234, CMD_1); 10097 #endif /* !GENTABLE */10098 8327 return 0; 10099 8328 } … … 10145 8374 int iiArithFindCmd(const char *szName) 10146 8375 { 10147 #ifndef GENTABLE10148 8376 int an=0; 10149 8377 int i = 0,v = 0; … … 10202 8430 //Print("RET-2\n"); 10203 8431 return -2; 10204 #else10205 return 0;10206 #endif10207 8432 } 10208 8433 … … 10300 8525 return 0; 10301 8526 } 10302 10303 #ifdef GENTABLE10304 // some special cmds which do not fit in with the others, and10305 // nevertheless need to be transmitted10306 short ExtraCmds[] =10307 {10308 OPTION_CMD,10309 NAMES_CMD,10310 // RESERVEDNAME_CMD,10311 PROC_CMD,10312 MAP_CMD,10313 PACKAGE_CMD,10314 '=',10315 010316 };10317 10318 // This returns 1 if tok is a token which can appear in a Singular10319 // (quoted) command, and 0 otherwise10320 short IsCmdToken(short tok)10321 {10322 int i = 0;10323 // cmds with one arg10324 while (dArith1[i].cmd != 0)10325 if (dArith1[i].cmd == tok) return 1;10326 else i++;10327 10328 // cmds with two args10329 i=0;10330 while (dArith2[i].cmd != 0)10331 if (dArith2[i].cmd == tok) return 1;10332 else i++;10333 10334 // cmds with three args10335 i=0;10336 while (dArith3[i].cmd != 0)10337 if (dArith3[i].cmd == tok) return 1;10338 else i++;10339 10340 // cmds with many args10341 i=0;10342 while (dArithM[i].cmd != 0)10343 if (dArithM[i].cmd == tok) return 1;10344 else i++;10345 10346 // cmds which are somewhat special (like those having 0 args)10347 i=0;10348 while (ExtraCmds[i] != 0)10349 if (ExtraCmds[i] == tok) return 1;10350 else i++;10351 10352 return 0;10353 }10354 #endif
Note: See TracChangeset
for help on using the changeset viewer.