source: git/Singular/table.h

spielwiese
Last change on this file was 5c7a85, checked in by Hans Schoenemann <hannes@…>, 2 weeks ago
assign number -> bigint
  • Property mode set to 100644
File size: 107.9 KB
Line 
1#ifdef IPARITH
2// additional to the usual types: INT_CMD etc.
3// thre are special types:
4// for the input:
5// IDHDL: argument must have a name
6// DEF_CMD: no restriktions on the argument
7// ANY_TYPE: changes to pseudo data (for "defined", "typeof", etc.)
8// with the following subfields
9//        - name !=NULL
10//        - data := original type id
11
12// for the output:
13// NONE: does not return a value
14// ANY_TYPE: various types, the routines have to set it
15
16// the procedures have to be wrapped into the macro D(...)
17// with the exception of jjWRONG... (which always fails)
18// -----------------------------------------------------------------------
19// context: non-commutative rings and coefficient domain:
20//
21// commutativity:
22// ALLOW_NC: also for plural rings and letterplace rings
23// ALLOW_LP: also for letterplace rings, not for plural rings
24// ALLOW_PLURAL: not for letterplace rings, but for plural rings
25// COMM_PLURAL: only for commuative subrings of plural rings
26// NO_NC: not for non-commutative rings
27//
28// coefficient domain:
29// ALLOW_RING:  coefficient domain may be a ring
30// NO_ZERODIVISOR: coefficient domain may be a ring without zero-divisors
31// NO_RING: coefficient domain must be a field
32//
33// other stuff:
34// NO_CONVERSION: arguments must have EXACTLY these types
35// WARN_RING: warn, that the operation happens in the quotient field
36/*=================== operations with 1 arg.: table =================*/
37const struct sValCmd1 dArith1[]=
38{
39// operationsi
40// proc            cmd               res             arg            context
41 {D(jjPLUSPLUS),   PLUSPLUS,        NONE,           IDHDL         , ALLOW_NC |ALLOW_RING}
42,{D(jjPLUSPLUS),   MINUSMINUS,      NONE,           IDHDL         , ALLOW_NC |ALLOW_RING}
43,{D(jjUMINUS_I),   '-',             INT_CMD,        INT_CMD       , ALLOW_NC |ALLOW_RING}
44,{D(jjUMINUS_BI),   '-',            BIGINT_CMD,     BIGINT_CMD    , ALLOW_NC |ALLOW_RING}
45,{D(jjUMINUS_N),   '-',             NUMBER_CMD,     NUMBER_CMD    , ALLOW_NC |ALLOW_RING}
46#ifdef SINGULAR_4_2
47,{D(jjNUMBER2_OP1),'-',             CNUMBER_CMD,    CNUMBER_CMD   , ALLOW_NC |ALLOW_RING}
48,{D(jjPOLY2_OP1),  '-',             CPOLY_CMD,      CPOLY_CMD     , ALLOW_NC |ALLOW_RING}
49#endif
50,{D(jjUMINUS_P),   '-',             POLY_CMD,       POLY_CMD      , ALLOW_NC |ALLOW_RING}
51,{D(jjUMINUS_P),   '-',             VECTOR_CMD,     VECTOR_CMD    , ALLOW_NC |ALLOW_RING}
52,{D(jjUMINUS_MA),  '-',             MATRIX_CMD,     MATRIX_CMD    , ALLOW_NC |ALLOW_RING}
53,{D(jjUMINUS_IV),  '-',             INTVEC_CMD,     INTVEC_CMD    , ALLOW_NC |ALLOW_RING}
54,{D(jjUMINUS_IV),  '-',             INTMAT_CMD,     INTMAT_CMD    , ALLOW_NC |ALLOW_RING}
55,{D(jjUMINUS_BIM), '-',             BIGINTMAT_CMD,  BIGINTMAT_CMD , ALLOW_NC |ALLOW_RING}
56#ifdef SINGULAR_4_2
57,{D(jjUMINUS_BIM), '-',             CMATRIX_CMD,    CMATRIX_CMD ,   ALLOW_NC |ALLOW_RING}
58#endif
59,{D(jjPROC1),      '(',             ANY_TYPE/*set by p*/,PROC_CMD , ALLOW_NC |ALLOW_RING}
60// and the procedures with 1 argument:
61,{D(atATTRIB1),    ATTRIB_CMD,      NONE,           DEF_CMD       , ALLOW_NC |ALLOW_RING}
62,{D(jjBAREISS_BIM), BAREISS_CMD,    BIGINTMAT_CMD,  BIGINTMAT_CMD  , ALLOW_PLURAL |ALLOW_RING}
63,{D(jjBAREISS),    BAREISS_CMD,     LIST_CMD,       MODUL_CMD     , NO_NC |ALLOW_RING | NO_ZERODIVISOR}
64,{D(jjBETTI),      BETTI_CMD,       INTMAT_CMD,     LIST_CMD      , ALLOW_PLURAL |NO_RING}
65,{D(syBetti1),     BETTI_CMD,       INTMAT_CMD,     RESOLUTION_CMD, ALLOW_PLURAL |NO_RING}
66,{D(jjBETTI),      BETTI_CMD,       INTMAT_CMD,     IDEAL_CMD     , ALLOW_PLURAL |NO_RING}
67,{D(jjBETTI),      BETTI_CMD,       INTMAT_CMD,     MODUL_CMD     , ALLOW_PLURAL |NO_RING}
68,{D(jjDUMMY),      BIGINT_CMD,      BIGINT_CMD,     BIGINT_CMD    , ALLOW_NC |ALLOW_RING}
69,{D(jjN2BI),       BIGINT_CMD,      BIGINT_CMD,     NUMBER_CMD    , ALLOW_NC |ALLOW_RING}
70,{D(jjP2BI),       BIGINT_CMD,      BIGINT_CMD,     POLY_CMD      , ALLOW_NC |ALLOW_RING}
71,{D(jjDUMMY),      BIGINTMAT_CMD,   BIGINTMAT_CMD,  BIGINTMAT_CMD , ALLOW_NC |ALLOW_RING}
72,{D(jjDUMMY),      BIGINTVEC_CMD,   BIGINTVEC_CMD,  BIGINTVEC_CMD , ALLOW_NC |ALLOW_RING}
73,{D(jjCHAR),       CHARACTERISTIC_CMD, INT_CMD,     RING_CMD      , ALLOW_NC |ALLOW_RING}
74,{D(jjCHARSERIES), CHAR_SERIES_CMD, MATRIX_CMD,     IDEAL_CMD     , NO_NC |NO_RING}
75,{D(jjrCharStr),   CHARSTR_CMD,     STRING_CMD,     RING_CMD      , ALLOW_NC |ALLOW_RING}
76,{D(jjOpenClose),  CLOSE_CMD,       NONE,           LINK_CMD      , ALLOW_NC |ALLOW_RING}
77#ifdef SINGULAR_4_2
78,{D(jjDUMMY),      CMATRIX_CMD,     CMATRIX_CMD,    CMATRIX_CMD ,   ALLOW_NC |ALLOW_RING}
79#endif
80//,{  jjWRONG ,       COLS_CMD,        0,              VECTOR_CMD  , ALLOW_NC |ALLOW_RING}
81,{D(jjCOEFFS1),    COEFFS_CMD,      CRING_CMD,      RING_CMD      , ALLOW_NC |ALLOW_RING}
82,{D(jjCOLS),       COLS_CMD,        INT_CMD,        MATRIX_CMD    , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
83,{D(jjCOLS),       COLS_CMD,        INT_CMD,        SMATRIX_CMD   , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
84,{D(jjCOLS),       COLS_CMD,        INT_CMD,        IDEAL_CMD     , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
85,{D(jjCOLS),       COLS_CMD,        INT_CMD,        MODUL_CMD     , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
86,{D(jjCOLS_IV),    COLS_CMD,        INT_CMD,        INTMAT_CMD    , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
87,{D(jjCOLS_BIM),   COLS_CMD,        INT_CMD,        BIGINTMAT_CMD , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
88#ifdef SINGULAR_4_2
89,{D(jjCOLS_BIM),   COLS_CMD,        INT_CMD,        CMATRIX_CMD , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
90#endif
91//,{  jjWRONG ,      COLS_CMD,        0,              INTVEC_CMD    , ALLOW_NC |ALLOW_RING}
92,{D(jjCONTENT),    CONTENT_CMD,     POLY_CMD,       POLY_CMD      , ALLOW_NC |ALLOW_RING}
93,{D(jjCONTENT),    CONTENT_CMD,     VECTOR_CMD,     VECTOR_CMD    , ALLOW_NC |ALLOW_RING}
94,{D(jjCOUNT_BI),   COUNT_CMD,       INT_CMD,        BIGINT_CMD    , ALLOW_NC |ALLOW_RING}
95,{D(jjCOUNT_N),    COUNT_CMD,       INT_CMD,        NUMBER_CMD    , ALLOW_NC |ALLOW_RING}
96,{D(jjCOUNT_RES),  COUNT_CMD,       INT_CMD,        RESOLUTION_CMD, ALLOW_NC |ALLOW_RING}
97,{D(jjstrlen),     COUNT_CMD,       INT_CMD,        STRING_CMD    , ALLOW_NC |ALLOW_RING}
98,{D(jjpLength),    COUNT_CMD,       INT_CMD,        POLY_CMD      , ALLOW_NC |ALLOW_RING}
99,{D(jjpLength),    COUNT_CMD,       INT_CMD,        VECTOR_CMD    , ALLOW_NC |ALLOW_RING}
100,{D(jjidElem),     COUNT_CMD,       INT_CMD,        IDEAL_CMD     , ALLOW_NC |ALLOW_RING}
101,{D(jjidElem),     COUNT_CMD,       INT_CMD,        MODUL_CMD     , ALLOW_NC |ALLOW_RING}
102,{D(jjCOUNT_M),    COUNT_CMD,       INT_CMD,        MATRIX_CMD    , ALLOW_NC |ALLOW_RING}
103,{D(jjCOUNT_IV),   COUNT_CMD,       INT_CMD,        INTVEC_CMD    , ALLOW_NC |ALLOW_RING}
104,{D(jjCOUNT_IV),   COUNT_CMD,       INT_CMD,        INTMAT_CMD    , ALLOW_NC |ALLOW_RING}
105,{D(jjCOUNT_BIM),  COUNT_CMD,       INT_CMD,        BIGINTMAT_CMD , ALLOW_NC |ALLOW_RING}
106,{D(jjCOUNT_BIM),  COUNT_CMD,       INT_CMD,        BIGINTVEC_CMD , ALLOW_NC |ALLOW_RING}
107,{D(jjCOUNT_L),    COUNT_CMD,       INT_CMD,        LIST_CMD      , ALLOW_NC |ALLOW_RING}
108,{D(jjCOUNT_RG),   COUNT_CMD,       INT_CMD,        RING_CMD      , ALLOW_NC |ALLOW_RING}
109,{D(jjR2_CR),      CRING_CMD,       CRING_CMD,      RING_CMD      , ALLOW_NC |ALLOW_RING}
110,{D(jjNULL),       DEF_CMD,         DEF_CMD,        INT_CMD       , ALLOW_NC |ALLOW_RING}
111,{  jjWRONG ,      DEF_CMD,         0,              ANY_TYPE      , ALLOW_NC |ALLOW_RING}
112,{D(jjDEG),        DEG_CMD,         INT_CMD,        POLY_CMD      , ALLOW_NC |ALLOW_RING}
113,{D(jjDEG),        DEG_CMD,         INT_CMD,        VECTOR_CMD    , ALLOW_NC |ALLOW_RING}
114,{D(jjDEG_M),      DEG_CMD,         INT_CMD,        MATRIX_CMD    , ALLOW_NC |ALLOW_RING}
115,{D(jjDEGREE),     DEGREE_CMD,      STRING_CMD,     IDEAL_CMD     , NO_NC |ALLOW_RING | NO_ZERODIVISOR}
116,{D(jjDEGREE),     DEGREE_CMD,      STRING_CMD,     MODUL_CMD     , NO_NC |ALLOW_RING | NO_ZERODIVISOR}
117,{D(jjDEFINED),    DEFINED_CMD,     INT_CMD,        DEF_CMD       , ALLOW_NC |ALLOW_RING}
118,{D(jjDENOMINATOR),DENOMINATOR_CMD, NUMBER_CMD,     NUMBER_CMD    , ALLOW_NC |ALLOW_RING}
119,{D(jjNUMERATOR),  NUMERATOR_CMD,   NUMBER_CMD,     NUMBER_CMD    , ALLOW_NC |ALLOW_RING}
120#ifdef SINGULAR_4_2
121,{D(jjDET_N2),     DET_CMD,         CNUMBER_CMD,    CMATRIX_CMD   , ALLOW_PLURAL |ALLOW_RING}
122#endif
123,{D(jjDET_BI),     DET_CMD,         BIGINT_CMD,     BIGINTMAT_CMD , ALLOW_NC |ALLOW_RING}
124,{D(jjDET_I),      DET_CMD,         INT_CMD,        INTMAT_CMD    , ALLOW_NC |ALLOW_RING}
125,{D(jjDET_S),      DET_CMD,         POLY_CMD,       SMATRIX_CMD   , NO_NC |NO_RING}
126,{D(jjDET),        DET_CMD,         POLY_CMD,       MATRIX_CMD    , NO_NC |ALLOW_RING}
127,{D(jjDIM),        DIM_CMD,         INT_CMD,        IDEAL_CMD     , ALLOW_NC |ALLOW_RING}
128,{D(jjDIM),        DIM_CMD,         INT_CMD,        MODUL_CMD     , ALLOW_PLURAL |ALLOW_RING}
129,{D(jjDIM_R),      DIM_CMD,         INT_CMD,        RESOLUTION_CMD, ALLOW_PLURAL |ALLOW_RING}
130,{D(jjDUMP),       DUMP_CMD,        NONE,           LINK_CMD      , ALLOW_NC |ALLOW_RING}
131,{D(jjE),          E_CMD,           VECTOR_CMD,     INT_CMD       , ALLOW_NC |ALLOW_RING}
132,{D(jjEXECUTE),    EXECUTE_CMD,     NONE,           STRING_CMD    , ALLOW_NC |ALLOW_RING}
133,{D(jjERROR),      ERROR_CMD,       NONE,           STRING_CMD    , ALLOW_NC |ALLOW_RING}
134,{D(jjFAC_P),      FAC_CMD,         LIST_CMD,       POLY_CMD      , NO_NC |ALLOW_ZZ}
135,{D(findUniProc),  FINDUNI_CMD,     IDEAL_CMD,      IDEAL_CMD     , NO_NC |NO_RING}
136,{D(jjidFreeModule),FREEMODULE_CMD, MODUL_CMD,      INT_CMD       , ALLOW_NC |ALLOW_RING}
137,{D(jjFACSTD),     FACSTD_CMD,      LIST_CMD,       IDEAL_CMD     , NO_NC |NO_RING}
138,{D(jjGETDUMP),    GETDUMP_CMD,     NONE,           LINK_CMD      , ALLOW_NC |ALLOW_RING}
139,{D(jjHIGHCORNER), HIGHCORNER_CMD,  POLY_CMD,       IDEAL_CMD     , NO_NC |ALLOW_RING}
140,{D(jjHIGHCORNER_M), HIGHCORNER_CMD,VECTOR_CMD,     MODUL_CMD     , NO_NC |ALLOW_RING}
141,{D(jjHILBERT),    HILBERT_CMD,     NONE,           IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING | NO_ZERODIVISOR}
142,{D(jjHILBERT),    HILBERT_CMD,     NONE,           MODUL_CMD     , ALLOW_PLURAL |ALLOW_RING | NO_ZERODIVISOR}
143,{D(jjHILBERT_IV), HILBERT_CMD,     INTVEC_CMD,     INTVEC_CMD    , ALLOW_PLURAL |ALLOW_RING | NO_ZERODIVISOR}
144,{D(jjHOMOG1),     HOMOG_CMD,       INT_CMD,        IDEAL_CMD     , ALLOW_NC |ALLOW_RING}
145,{D(jjHOMOG1),     HOMOG_CMD,       INT_CMD,        MODUL_CMD     , ALLOW_NC |ALLOW_RING}
146,{D(jjDUMMY),      IDEAL_CMD,       IDEAL_CMD,      IDEAL_CMD     , ALLOW_NC |ALLOW_RING}
147,{D(jjidVec2Ideal),IDEAL_CMD,       IDEAL_CMD,      VECTOR_CMD    , ALLOW_NC |ALLOW_RING}
148,{D(jjIDEAL_Ma),   IDEAL_CMD,       IDEAL_CMD,      MATRIX_CMD    , ALLOW_NC |ALLOW_RING}
149,{D(jjIDEAL_R),    IDEAL_CMD,       IDEAL_CMD,      RING_CMD      , ALLOW_NC |ALLOW_RING}
150,{D(jjIDEAL_Map),  IDEAL_CMD,       IDEAL_CMD,      MAP_CMD       , ALLOW_NC |ALLOW_RING}
151,{D(jjIMPART),     IMPART_CMD,      NUMBER_CMD,     NUMBER_CMD    , ALLOW_NC |ALLOW_RING}
152,{D(jjINDEPSET),   INDEPSET_CMD,    INTVEC_CMD,     IDEAL_CMD     , NO_NC |NO_RING}
153,{D(jjDUMMY),      INT_CMD,         INT_CMD,        INT_CMD       , ALLOW_NC |ALLOW_RING}
154,{D(jjnlInt),      INT_CMD,         INT_CMD,        BIGINT_CMD    , ALLOW_NC |ALLOW_RING}
155,{D(jjnInt),       INT_CMD,         INT_CMD,        NUMBER_CMD    , ALLOW_NC |ALLOW_RING}
156,{D(jjP2I),        INT_CMD,         INT_CMD,        POLY_CMD      , ALLOW_NC |ALLOW_RING}
157,{D(jjS2I),        INT_CMD,         INT_CMD,        STRING_CMD    , ALLOW_NC |ALLOW_RING}
158,{D(jjINTERRED),   INTERRED_CMD,    IDEAL_CMD,      IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING}
159,{D(jjINTERRED),   INTERRED_CMD,    MODUL_CMD,      MODUL_CMD     , ALLOW_PLURAL |ALLOW_RING}
160,{D(jjBI2IM),      INTMAT_CMD,      INTMAT_CMD,     BIGINTMAT_CMD  , ALLOW_PLURAL |ALLOW_RING}
161,{D(jjDUMMY),      INTMAT_CMD,      INTMAT_CMD,     INTMAT_CMD    , ALLOW_NC |ALLOW_RING}
162,{D(jjIm2Iv),      INTVEC_CMD,      INTVEC_CMD,     INTMAT_CMD    , ALLOW_NC |ALLOW_RING}
163,{D(jjDUMMY),      INTVEC_CMD,      INTVEC_CMD,     INTVEC_CMD    , ALLOW_NC |ALLOW_RING}
164,{D(jjBIV2IV),     INTVEC_CMD,      INTVEC_CMD,     BIGINTVEC_CMD , ALLOW_NC |ALLOW_RING}
165,{D(jjIS_RINGVAR_P), IS_RINGVAR,    INT_CMD,        POLY_CMD      , ALLOW_NC |ALLOW_RING}
166,{D(jjIS_RINGVAR_S), IS_RINGVAR,    INT_CMD,        STRING_CMD    , ALLOW_NC |ALLOW_RING}
167,{D(jjIS_RINGVAR0),IS_RINGVAR,      INT_CMD,        ANY_TYPE      , ALLOW_NC |ALLOW_RING}
168,{D(jjJACOB_P),    JACOB_CMD,       IDEAL_CMD,      POLY_CMD      , ALLOW_PLURAL |ALLOW_RING}
169,{D(mpJacobi),     JACOB_CMD,       MATRIX_CMD,     IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING}
170,{D(jjJACOB_M),    JACOB_CMD,       MODUL_CMD,      MODUL_CMD     , ALLOW_PLURAL |ALLOW_RING}
171,{D(jjJanetBasis), JANET_CMD,       IDEAL_CMD,      IDEAL_CMD     , ALLOW_PLURAL |NO_RING}
172,{D(jjKBASE),      KBASE_CMD,       IDEAL_CMD,      IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING|WARN_RING} /*ring-cf: warning at top level*/
173,{D(jjKBASE),      KBASE_CMD,       MODUL_CMD,      MODUL_CMD     , ALLOW_PLURAL |ALLOW_RING|WARN_RING} /*ring-cf: warning at top level*/
174,{D(jjKERNEL_M),   KERNEL_CMD,      MATRIX_CMD,     MATRIX_CMD    , ALLOW_PLURAL |ALLOW_RING}
175,{D(jjKERNEL_SM),  KERNEL_CMD,      SMATRIX_CMD,    SMATRIX_CMD   , ALLOW_PLURAL |ALLOW_RING}
176,{D(jjLagSolve),   LAGSOLVE_CMD,    LIST_CMD,       POLY_CMD      , NO_NC |NO_RING}
177,{D(jjLU_DECOMP),  LU_CMD,          LIST_CMD,       MATRIX_CMD    , NO_NC |NO_RING}
178,{D(jjPFAC1),      PFAC_CMD,        LIST_CMD,       BIGINT_CMD    , ALLOW_NC |ALLOW_RING}
179,{D(jjPFAC1),      PFAC_CMD,        LIST_CMD,       NUMBER_CMD    , ALLOW_NC |ALLOW_RING}
180,{D(atKILLATTR1),  KILLATTR_CMD,    NONE,           IDHDL         , ALLOW_NC |ALLOW_RING}
181,{D(jjpHead),      LEAD_CMD,        POLY_CMD,       POLY_CMD      , ALLOW_NC |ALLOW_RING}
182,{D(jjidHead),     LEAD_CMD,        IDEAL_CMD,      IDEAL_CMD     , ALLOW_NC |ALLOW_RING}
183,{D(jjpHead),      LEAD_CMD,        VECTOR_CMD,     VECTOR_CMD    , ALLOW_NC |ALLOW_RING}
184,{D(jjidHead),     LEAD_CMD,        MODUL_CMD,      MODUL_CMD     , ALLOW_NC |ALLOW_RING}
185,{D(jjLEADCOEF),   LEADCOEF_CMD,    NUMBER_CMD,     POLY_CMD      , ALLOW_NC |ALLOW_RING}
186,{D(jjLEADCOEF),   LEADCOEF_CMD,    NUMBER_CMD,     VECTOR_CMD    , ALLOW_NC |ALLOW_RING}
187,{D(jjLEADEXP),    LEADEXP_CMD,     INTVEC_CMD,     POLY_CMD      , ALLOW_NC |ALLOW_RING}
188,{D(jjLEADEXP),    LEADEXP_CMD,     INTVEC_CMD,     VECTOR_CMD    , ALLOW_NC |ALLOW_RING}
189,{D(jjLEADMONOM),  LEADMONOM_CMD,   POLY_CMD,       POLY_CMD      , ALLOW_NC |ALLOW_RING}
190,{D(jjLEADMONOM),  LEADMONOM_CMD,   VECTOR_CMD,     VECTOR_CMD    , ALLOW_NC |ALLOW_RING}
191,{D(jjDUMMY),      LINK_CMD,        LINK_CMD,       LINK_CMD      , ALLOW_NC |ALLOW_RING}
192,{D(jjCALL1MANY),  LIST_CMD,        LIST_CMD,       DEF_CMD       , ALLOW_NC |ALLOW_RING}
193,{  jjWRONG ,      MAP_CMD,         0,              ANY_TYPE      , ALLOW_NC |ALLOW_RING}
194,{D(jjDUMMY),      MATRIX_CMD,      MATRIX_CMD,     MATRIX_CMD    , ALLOW_NC |ALLOW_RING}
195,{D(jjidMaxIdeal), MAXID_CMD,       IDEAL_CMD,      INT_CMD       , ALLOW_NC |ALLOW_RING}
196,{D(jjMEMORY),     MEMORY_CMD,      BIGINT_CMD,     INT_CMD       , ALLOW_NC |ALLOW_RING}
197,{D(jjidMinBase),  MINBASE_CMD,     IDEAL_CMD,      IDEAL_CMD     , NO_NC |NO_RING}
198,{D(jjidMinBase),  MINBASE_CMD,     MODUL_CMD,      MODUL_CMD     , NO_NC |NO_RING}
199,{D(jjMINRES),     MINRES_CMD,      LIST_CMD,       LIST_CMD      , ALLOW_PLURAL |NO_RING}
200,{D(jjMINRES_R),   MINRES_CMD,      RESOLUTION_CMD, RESOLUTION_CMD, ALLOW_PLURAL |NO_RING}
201,{D(jjDUMMY),      MODUL_CMD,       MODUL_CMD,      MODUL_CMD     , ALLOW_NC |ALLOW_RING}
202,{D(jjMONITOR1),   MONITOR_CMD,     NONE,           LINK_CMD      , ALLOW_NC |ALLOW_RING}
203,{D(jjMONOM),      MONOM_CMD,       POLY_CMD,       INTVEC_CMD    , ALLOW_NC |ALLOW_RING}
204,{D(jjMULT),       MULTIPLICITY_CMD,  INT_CMD,      IDEAL_CMD     , NO_NC |ALLOW_RING}
205,{D(jjMULT),       MULTIPLICITY_CMD,  INT_CMD,      MODUL_CMD     , NO_NC |ALLOW_RING}
206,{D(jjMSTD),       MSTD_CMD,        LIST_CMD,       IDEAL_CMD     , NO_NC |ALLOW_RING}
207,{D(jjMSTD),       MSTD_CMD,        LIST_CMD,       MODUL_CMD     , NO_NC |ALLOW_RING}
208,{D(jjNAMEOF),     NAMEOF_CMD,      STRING_CMD,     ANY_TYPE      , ALLOW_NC |ALLOW_RING}
209,{D(jjNAMES_I),    NAMES_CMD,       LIST_CMD,       INT_CMD       , ALLOW_NC |ALLOW_RING}
210,{D(jjNAMES),      NAMES_CMD,       LIST_CMD,       PACKAGE_CMD   , ALLOW_NC |ALLOW_RING}
211,{D(jjNAMES),      NAMES_CMD,       LIST_CMD,       RING_CMD      , ALLOW_NC |ALLOW_RING}
212,{D(jjNOT),        NOT,             INT_CMD,        INT_CMD       , ALLOW_NC |ALLOW_RING}
213#ifdef SINGULAR_4_2
214,{D(jjN2_N),       NUMBER_CMD,      NUMBER_CMD,     CNUMBER_CMD   , ALLOW_NC |ALLOW_RING}
215#endif
216,{D(jjDUMMY),      NUMBER_CMD,      NUMBER_CMD,     NUMBER_CMD    , ALLOW_NC |ALLOW_RING}
217,{D(jjP2N),        NUMBER_CMD,      NUMBER_CMD,     POLY_CMD      , ALLOW_NC |ALLOW_RING}
218,{D(jjBI2N),       NUMBER_CMD,      NUMBER_CMD,     BIGINT_CMD    , ALLOW_NC |ALLOW_RING}
219,{D(jjDUMMY),      CNUMBER_CMD,     CNUMBER_CMD,    CNUMBER_CMD   , ALLOW_NC |ALLOW_RING}
220,{D(jjRPAR),       NPARS_CMD,       INT_CMD,        RING_CMD      , ALLOW_NC |ALLOW_RING}
221,{D(jjNVARS),      NVARS_CMD,       INT_CMD,        RING_CMD      , ALLOW_NC |ALLOW_RING}
222,{D(jjOpenClose),  OPEN_CMD,        NONE,           LINK_CMD      , ALLOW_NC |ALLOW_RING}
223,{D(jjCALL1MANY),  OPTION_CMD,      NONE,           DEF_CMD       , ALLOW_NC |ALLOW_RING} /*libsing*/
224,{D(jjORD),        ORD_CMD,         INT_CMD,        POLY_CMD      , ALLOW_NC |ALLOW_RING}
225,{D(jjORD),        ORD_CMD,         INT_CMD,        VECTOR_CMD    , ALLOW_NC |ALLOW_RING}
226,{D(jjrOrdStr),    ORDSTR_CMD,      STRING_CMD,     RING_CMD      , ALLOW_NC |ALLOW_RING}
227,{D(jjPAR1),       PAR_CMD,         NUMBER_CMD,     INT_CMD       , ALLOW_NC |ALLOW_RING}
228,{D(jjPARDEG),     PARDEG_CMD,      INT_CMD,        NUMBER_CMD    , ALLOW_NC |ALLOW_RING}
229#ifdef SINGULAR_4_2
230,{D(jjN2_CR),      PARENT_CMD,      CRING_CMD,      CNUMBER_CMD    , ALLOW_NC |ALLOW_RING}
231,{D(jjP2_R),       PARENT_CMD,      RING_CMD,       CPOLY_CMD      , ALLOW_NC |ALLOW_RING}
232,{D(jjCM_CR),      PARENT_CMD,      CRING_CMD,      CMATRIX_CMD    , ALLOW_NC |ALLOW_RING}
233,{D(jjBIM2_CR),    PARENT_CMD,      CRING_CMD,      BIGINTMAT_CMD , ALLOW_NC |ALLOW_RING}
234#endif
235,{D(jjPARSTR1),    PARSTR_CMD,      STRING_CMD,     INT_CMD       , ALLOW_NC |ALLOW_RING}
236,{D(jjrParStr),    PARSTR_CMD,      STRING_CMD,     RING_CMD      , ALLOW_NC |ALLOW_RING}
237,{D(jjDUMMY),      POLY_CMD,        POLY_CMD,       POLY_CMD      , ALLOW_NC |ALLOW_RING}
238,{D(jjBI2P),       POLY_CMD,        POLY_CMD,       BIGINT_CMD    , ALLOW_NC |ALLOW_RING}
239,{D(jjPREIMAGE_R), PREIMAGE_CMD,    RING_CMD,       MAP_CMD       , ALLOW_LP |ALLOW_RING}
240,{D(jjPRIME),      PRIME_CMD,       INT_CMD,        INT_CMD       , ALLOW_NC |ALLOW_RING}
241,{D(jjPRINT),      PRINT_CMD,       STRING_CMD,     LIST_CMD      , ALLOW_NC |ALLOW_RING}
242,{D(jjPRINT),      PRINT_CMD,       STRING_CMD,     DEF_CMD       , ALLOW_NC |ALLOW_RING}
243,{D(jjDUMMY),      PROC_CMD,        PROC_CMD,       PROC_CMD       , ALLOW_NC |ALLOW_RING}
244,{D(jjPRUNE),      PRUNE_CMD,       MODUL_CMD,      MODUL_CMD     , ALLOW_PLURAL |NO_RING}
245,{D(kQHWeight),    QHWEIGHT_CMD,    INTVEC_CMD,     IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING}
246,{D(kQHWeight),    QHWEIGHT_CMD,    INTVEC_CMD,     MODUL_CMD     , ALLOW_PLURAL |ALLOW_RING}
247,{D(jjRANK1),      RANK_CMD,        INT_CMD,        MATRIX_CMD    , ALLOW_NC |NO_RING}
248,{D(jjREAD),       READ_CMD,        STRING_CMD,     LINK_CMD      , ALLOW_NC |ALLOW_RING}
249,{D(jjREGULARITY), REGULARITY_CMD,  INT_CMD,        LIST_CMD      , NO_NC |ALLOW_RING}
250,{D(jjREPART),     REPART_CMD,      NUMBER_CMD,     NUMBER_CMD    , ALLOW_NC |ALLOW_RING}
251,{D(jjRESERVEDNAME),RESERVEDNAME_CMD, INT_CMD,      STRING_CMD    , ALLOW_NC |ALLOW_RING}
252,{D(jjL2R),        RESOLUTION_CMD,  RESOLUTION_CMD, LIST_CMD      , ALLOW_PLURAL |ALLOW_RING}
253,{D(jjDUMMY),      RESOLUTION_CMD,  RESOLUTION_CMD, RESOLUTION_CMD, ALLOW_PLURAL |ALLOW_RING}
254,{D(jjRESTART),    RESTART_CMD,     NONE,           INT_CMD,        ALLOW_NC |ALLOW_RING}
255,{D(jjRIGHTSTD),   RIGHTSTD_CMD,    IDEAL_CMD,      IDEAL_CMD     , ALLOW_NC |NO_RING}
256,{D(jjRINGLIST),   RINGLIST_CMD,    LIST_CMD,       RING_CMD      , ALLOW_NC |ALLOW_RING}
257,{D(jjRINGLIST_C), RING_LIST_CMD,   LIST_CMD,       CRING_CMD     , ALLOW_NC |ALLOW_RING}
258,{D(jjRING_LIST),  RING_LIST_CMD,   LIST_CMD,       RING_CMD      , ALLOW_NC |ALLOW_RING}
259,{D(jjDUMMY),      RING_CMD,        RING_CMD,       RING_CMD      , ALLOW_NC |ALLOW_RING}
260,{D(jjLISTRING),   RING_CMD,        RING_CMD,       LIST_CMD      , ALLOW_NC |ALLOW_RING}
261//,{  jjWRONG ,      ROWS_CMD,        0,              POLY_CMD    , ALLOW_NC |ALLOW_RING}
262,{D(jjpMaxComp),   ROWS_CMD,        INT_CMD,        VECTOR_CMD    , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
263,{D(jjROWS),       ROWS_CMD,        INT_CMD,        MODUL_CMD     , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
264,{D(jjROWS),       ROWS_CMD,        INT_CMD,        MATRIX_CMD    , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
265,{D(jjROWS),       ROWS_CMD,        INT_CMD,        SMATRIX_CMD   , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
266,{D(jjROWS_IV),    ROWS_CMD,        INT_CMD,        INTMAT_CMD    , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
267,{D(jjROWS_BIM),   ROWS_CMD,        INT_CMD,        BIGINTMAT_CMD , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
268#ifdef SINGULAR_4_2
269,{D(jjROWS_BIM),   ROWS_CMD,        INT_CMD,        CMATRIX_CMD , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
270#endif
271,{D(jjCOUNT_IV),   ROWS_CMD,        INT_CMD,        INTVEC_CMD    , ALLOW_NC |ALLOW_RING|NO_CONVERSION}
272,{D(jjSBA),        SBA_CMD,         IDEAL_CMD,      IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING}
273,{D(jjSBA),        SBA_CMD,         MODUL_CMD,      MODUL_CMD     , ALLOW_PLURAL |ALLOW_RING}
274,{D(jjSetRing),    SETRING_CMD,     NONE,           RING_CMD      , ALLOW_NC |ALLOW_RING}
275,{D(jjSLIM_GB),    SLIM_GB_CMD,     IDEAL_CMD,      IDEAL_CMD     , ALLOW_PLURAL |NO_RING}
276,{D(jjSLIM_GB),    SLIM_GB_CMD,     MODUL_CMD,      MODUL_CMD     , ALLOW_PLURAL |NO_RING}
277,{D(jjDUMMY),      SMATRIX_CMD,     SMATRIX_CMD,    SMATRIX_CMD   , ALLOW_NC |ALLOW_RING}
278,{D(jjSort_Id),    SORTVEC_CMD,     INTVEC_CMD,     IDEAL_CMD     , ALLOW_NC |ALLOW_RING}
279,{D(jjSort_Id),    SORTVEC_CMD,     INTVEC_CMD,     MODUL_CMD     , ALLOW_NC |ALLOW_RING}
280,{D(jjSQR_FREE),   SQR_FREE_CMD,    LIST_CMD,      POLY_CMD      , NO_NC |NO_RING}
281,{D(jjSTD),        STD_CMD,         IDEAL_CMD,      IDEAL_CMD     , ALLOW_NC |ALLOW_RING}
282,{D(jjSTD),        STD_CMD,         MODUL_CMD,      MODUL_CMD     , ALLOW_NC |ALLOW_RING}
283,{D(jjSTD),        STD_CMD,         SMATRIX_CMD,    SMATRIX_CMD   , ALLOW_NC |ALLOW_RING}
284,{D(jjDUMMY),      STRING_CMD,      STRING_CMD,     STRING_CMD    , ALLOW_NC |ALLOW_RING}
285,{D(jjSYZYGY),     SYZYGY_CMD,      MODUL_CMD,      IDEAL_CMD     , ALLOW_NC |ALLOW_RING}
286,{D(jjSYZYGY),     SYZYGY_CMD,      MODUL_CMD,      MODUL_CMD     , ALLOW_NC |ALLOW_RING}
287,{D(jjENVELOPE),   ENVELOPE_CMD,    RING_CMD,       RING_CMD      , ALLOW_PLURAL |NO_RING}
288,{D(jjOPPOSITE),   OPPOSITE_CMD,    RING_CMD,       RING_CMD      , ALLOW_PLURAL |NO_RING}
289,{D(jjTWOSTD),     TWOSTD_CMD,      IDEAL_CMD,      IDEAL_CMD     , ALLOW_NC |ALLOW_RING}
290,{D(jjTWOSTD),     TWOSTD_CMD,      MODUL_CMD,      MODUL_CMD     , ALLOW_LP |ALLOW_RING}
291//,{  jjWRONG ,      TRACE_CMD,       0,              INTVEC_CMD    , ALLOW_NC |ALLOW_RING}
292//,{  jjWRONG ,      TRACE_CMD,       0,              IDEAL_CMD     , ALLOW_NC |ALLOW_RING}
293,{D(jjTRACE_IV),   TRACE_CMD,       INT_CMD,        INTMAT_CMD    , ALLOW_PLURAL |ALLOW_RING|NO_CONVERSION}
294,{D(jjmpTrace),    TRACE_CMD,       POLY_CMD,       MATRIX_CMD    , ALLOW_PLURAL |ALLOW_RING|NO_CONVERSION}
295,{D(jjTRANSP_IV),  TRANSPOSE_CMD,   INTMAT_CMD,     INTVEC_CMD    , ALLOW_NC |ALLOW_RING}
296,{D(jjTRANSP_IV),  TRANSPOSE_CMD,   INTMAT_CMD,     INTMAT_CMD    , ALLOW_NC |ALLOW_RING}
297,{D(jjTRANSP_BIM), TRANSPOSE_CMD,   BIGINTMAT_CMD,  BIGINTMAT_CMD , ALLOW_NC |ALLOW_RING}
298#ifdef SINGULAR_4_2
299,{D(jjTRANSP_BIM), TRANSPOSE_CMD,   CMATRIX_CMD,    CMATRIX_CMD ,   ALLOW_NC |ALLOW_RING}
300#endif
301,{D(jjmpTransp),   TRANSPOSE_CMD,   MATRIX_CMD,     MATRIX_CMD    , ALLOW_NC |ALLOW_RING}
302,{D(jjidTransp),   TRANSPOSE_CMD,   MODUL_CMD,      MODUL_CMD     , ALLOW_NC |ALLOW_RING}
303,{D(jjidTransp),   TRANSPOSE_CMD,   SMATRIX_CMD,    SMATRIX_CMD   , ALLOW_NC |ALLOW_RING}
304,{D(jjTYPEOF),     TYPEOF_CMD,      STRING_CMD,     ANY_TYPE      , ALLOW_NC |ALLOW_RING}
305,{D(jjUNIVARIATE), UNIVARIATE_CMD,  INT_CMD,        POLY_CMD      , ALLOW_PLURAL |ALLOW_RING}
306,{D(jjVARIABLES_P),VARIABLES_CMD,   IDEAL_CMD,      POLY_CMD      , ALLOW_PLURAL |ALLOW_RING}
307,{D(jjVARIABLES_ID),VARIABLES_CMD,  IDEAL_CMD,      IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING}
308,{D(jjVARIABLES_ID),VARIABLES_CMD,  IDEAL_CMD,      MATRIX_CMD    , ALLOW_PLURAL |ALLOW_RING}
309,{D(jjDUMMY),      VECTOR_CMD,      VECTOR_CMD,     VECTOR_CMD    , ALLOW_NC |ALLOW_RING}
310,{D(jjVDIM),       VDIM_CMD,        INT_CMD,        IDEAL_CMD     , ALLOW_NC |ALLOW_RING |WARN_RING} /*ring-cf: warning at top level*/
311,{D(jjVDIM),       VDIM_CMD,        INT_CMD,        MODUL_CMD     , ALLOW_PLURAL |ALLOW_RING |WARN_RING} /*ring-cf: warning at top level*/
312,{D(jjVAR1),       VAR_CMD,         POLY_CMD,       INT_CMD       , ALLOW_NC |ALLOW_RING}
313,{D(jjVARSTR1),    VARSTR_CMD,      STRING_CMD,     INT_CMD       , ALLOW_NC |ALLOW_RING}
314,{D(jjrVarStr),    VARSTR_CMD,      STRING_CMD,     RING_CMD      , ALLOW_NC |ALLOW_RING}
315,{D(kWeight),      WEIGHT_CMD,      INTVEC_CMD,     IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING}
316,{D(kWeight),      WEIGHT_CMD,      INTVEC_CMD,     MODUL_CMD     , ALLOW_PLURAL |ALLOW_RING}
317,{D(jjLOAD1),      LOAD_CMD,        NONE,           STRING_CMD    , ALLOW_NC |ALLOW_RING}
318,{D(loNewtonP),    NEWTONPOLY_CMD,  IDEAL_CMD,      IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING}
319,{D(jjWAIT1ST1),   WAIT1ST_CMD,     INT_CMD,        LIST_CMD      , ALLOW_NC |ALLOW_RING}
320,{D(jjWAITALL1),   WAITALL_CMD,     INT_CMD,        LIST_CMD      , ALLOW_NC |ALLOW_RING}
321,{NULL_VAL,        0,               0,              0             , NO_NC |NO_RING}
322};
323/*=================== operations with 2 arg.: table =================*/
324const struct sValCmd2 dArith2[]=
325{
326// operations:
327// proc           cmd              res             arg1        arg2   context
328 {D(jjCOLCOL),    COLONCOLON,     ANY_TYPE,       DEF_CMD,    DEF_CMD, ALLOW_NC | ALLOW_RING}
329,{D(jjPLUS_I),    '+',            INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
330,{D(jjPLUS_BI),   '+',            BIGINT_CMD,     BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
331,{D(jjPLUS_N),    '+',            NUMBER_CMD,     NUMBER_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
332,{D(jjPLUS_B),    '+',            BUCKET_CMD,     POLY_CMD,   POLY_CMD, ALLOW_NC | ALLOW_RING}
333,{D(jjPLUS_V),    '+',            VECTOR_CMD,     VECTOR_CMD, VECTOR_CMD, ALLOW_NC | ALLOW_RING}
334,{D(jjPLUS_ID),   '+',            IDEAL_CMD,      IDEAL_CMD,  IDEAL_CMD, ALLOW_NC | ALLOW_RING}
335,{D(jjPLUS_ID),   '+',            MODUL_CMD,      MODUL_CMD,  MODUL_CMD, ALLOW_NC | ALLOW_RING}
336,{D(jjPLUS_P_MA), '+',            MATRIX_CMD,     POLY_CMD,   MATRIX_CMD, ALLOW_NC | ALLOW_RING}
337,{D(jjPLUS_MA_P), '+',            MATRIX_CMD,     MATRIX_CMD, POLY_CMD, ALLOW_NC | ALLOW_RING}
338,{D(jjPLUS_MA),   '+',            MATRIX_CMD,     MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
339,{D(jjPLUS_SM),   '+',            SMATRIX_CMD,    SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING}
340,{D(jjPLUS_S),    '+',            STRING_CMD,     STRING_CMD, STRING_CMD, ALLOW_NC | ALLOW_RING}
341,{D(jjPLUS_BIM),  '+',            BIGINTMAT_CMD,  BIGINTMAT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
342,{D(jjPLUS_BIM),  '+',            BIGINTVEC_CMD,  BIGINTVEC_CMD, BIGINTVEC_CMD, ALLOW_NC | ALLOW_RING}
343,{D(jjOP_BIM_I),  '+',            BIGINTMAT_CMD,  BIGINTMAT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
344,{D(jjOP_I_BIM),  '+',            BIGINTMAT_CMD,  INT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
345,{D(jjOP_BIM_BI),  '+',           BIGINTMAT_CMD,  BIGINTMAT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
346,{D(jjOP_BI_BIM),  '+',           BIGINTMAT_CMD,  BIGINT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
347,{D(jjOP_BIM_I),  '+',            BIGINTVEC_CMD,  BIGINTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
348,{D(jjOP_I_BIM),  '+',            BIGINTVEC_CMD,  INT_CMD, BIGINTVEC_CMD, ALLOW_NC | ALLOW_RING}
349,{D(jjOP_BIM_BI),  '+',           BIGINTVEC_CMD,  BIGINTVEC_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
350,{D(jjOP_BI_BIM),  '+',           BIGINTVEC_CMD,  BIGINT_CMD, BIGINTVEC_CMD, ALLOW_NC | ALLOW_RING}
351,{D(jjOP_IV_I),   '+',            INTVEC_CMD,     INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
352,{D(jjOP_I_IV),   '+',            INTVEC_CMD,     INT_CMD,    INTVEC_CMD, ALLOW_NC | ALLOW_RING}
353,{D(jjOP_IM_I),   '+',            INTMAT_CMD,     INTMAT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
354,{D(jjOP_I_IM),   '+',            INTMAT_CMD,     INT_CMD,    INTMAT_CMD, ALLOW_NC | ALLOW_RING}
355,{D(jjPLUS_IV),   '+',            INTVEC_CMD,     INTVEC_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
356,{D(jjPLUS_IV),   '+',            INTMAT_CMD,     INTMAT_CMD, INTMAT_CMD, ALLOW_NC | ALLOW_RING}
357#ifdef SINGULAR_4_2
358,{D(jjNUMBER2_OP2),'+',           CNUMBER_CMD,    CNUMBER_CMD,CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
359,{D(jjNUMBER2_OP2),'+',           CNUMBER_CMD,    DEF_CMD,    CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
360,{D(jjNUMBER2_OP2),'+',           CNUMBER_CMD,    CNUMBER_CMD,DEF_CMD, ALLOW_NC | ALLOW_RING}
361,{D(jjPOLY2_OP2), '+',            CPOLY_CMD,      CPOLY_CMD,  DEF_CMD, ALLOW_NC | ALLOW_RING}
362,{D(jjPOLY2_OP2), '+',            CPOLY_CMD,      DEF_CMD,    CPOLY_CMD,  ALLOW_NC | ALLOW_RING}
363,{D(jjPLUS_BIM),  '+',            CMATRIX_CMD,    CMATRIX_CMD, CMATRIX_CMD, ALLOW_NC | ALLOW_RING}
364#endif
365,{D(lAdd),        '+',            LIST_CMD,       LIST_CMD,   LIST_CMD, ALLOW_NC | ALLOW_RING}
366,{D(jjRSUM),      '+',            RING_CMD,       RING_CMD,   RING_CMD, ALLOW_NC | ALLOW_RING}
367,{D(jjRPLUS),     '+',            RING_CMD,       RING_CMD,   STRING_CMD, ALLOW_LP | ALLOW_RING}
368,{D(jjRPLUS),     '+',            RING_CMD,       STRING_CMD, RING_CMD, ALLOW_LP | ALLOW_RING}
369,{D(jjPLUS_B_P),  '+',            BUCKET_CMD,     BUCKET_CMD, POLY_CMD, ALLOW_NC | ALLOW_RING}
370,{D(jjMINUS_I),   '-',            INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
371,{D(jjMINUS_BI),  '-',            BIGINT_CMD,     BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
372,{D(jjMINUS_N),   '-',            NUMBER_CMD,     NUMBER_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
373,{D(jjMINUS_B),   '-',            BUCKET_CMD,     POLY_CMD,   POLY_CMD, ALLOW_NC | ALLOW_RING}
374,{D(jjMINUS_V),   '-',            VECTOR_CMD,     VECTOR_CMD, VECTOR_CMD, ALLOW_NC | ALLOW_RING}
375,{D(jjMINUS_V),   '-',            VECTOR_CMD,     VECTOR_CMD, VECTOR_CMD, ALLOW_NC | ALLOW_RING}
376,{D(jjPLUS_MA_P), '-',            MATRIX_CMD,     MATRIX_CMD, POLY_CMD, ALLOW_NC | ALLOW_RING}
377,{D(jjMINUS_MA),  '-',            MATRIX_CMD,     MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
378,{D(jjMINUS_SM),  '-',            SMATRIX_CMD,    SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING}
379,{D(jjMINUS_BIM), '-',            BIGINTMAT_CMD,  BIGINTMAT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
380,{D(jjOP_BIM_I),  '-',            BIGINTMAT_CMD,  BIGINTMAT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
381,{D(jjOP_I_BIM),  '-',            BIGINTMAT_CMD,  INT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
382,{D(jjOP_BIM_BI), '-',            BIGINTMAT_CMD,  BIGINTMAT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
383,{D(jjOP_BI_BIM), '-',            BIGINTMAT_CMD,  BIGINT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
384,{D(jjMINUS_BIM), '-',            BIGINTVEC_CMD,  BIGINTVEC_CMD, BIGINTVEC_CMD, ALLOW_NC | ALLOW_RING}
385,{D(jjOP_BIM_I),  '-',            BIGINTVEC_CMD,  BIGINTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
386,{D(jjOP_I_BIM),  '-',            BIGINTVEC_CMD,  INT_CMD, BIGINTVEC_CMD, ALLOW_NC | ALLOW_RING}
387,{D(jjOP_BIM_BI), '-',            BIGINTVEC_CMD,  BIGINTVEC_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
388,{D(jjOP_BI_BIM), '-',            BIGINTVEC_CMD,  BIGINT_CMD, BIGINTVEC_CMD, ALLOW_NC | ALLOW_RING}
389,{D(jjOP_IV_I),   '-',            INTVEC_CMD,     INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
390,{D(jjOP_IM_I),   '-',            INTMAT_CMD,     INTMAT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
391,{D(jjMINUS_IV),  '-',            INTVEC_CMD,     INTVEC_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
392,{D(jjMINUS_IV),  '-',            INTMAT_CMD,     INTMAT_CMD, INTMAT_CMD, ALLOW_NC | ALLOW_RING}
393#ifdef SINGULAR_4_2
394,{D(jjNUMBER2_OP2),'-',           CNUMBER_CMD,    CNUMBER_CMD,CNUMBER_CMD, ALLOW_NALLOW_NC | ALLOW_RING}
395,{D(jjNUMBER2_OP2),'-',           CNUMBER_CMD,    INT_CMD,    CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
396,{D(jjNUMBER2_OP2),'-',           CNUMBER_CMD,    CNUMBER_CMD,INT_CMD, ALLOW_NC | ALLOW_RING}
397,{D(jjNUMBER2_OP2),'-',           CNUMBER_CMD,    BIGINT_CMD, CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
398,{D(jjNUMBER2_OP2),'-',           CNUMBER_CMD,    CNUMBER_CMD,BIGINT_CMD, ALLOW_NC | ALLOW_RING}
399,{D(jjPOLY2_OP2), '-',            CPOLY_CMD,      CPOLY_CMD,  CPOLY_CMD, ALLOW_NC | ALLOW_RING}
400,{D(jjPOLY2_OP2), '-',            CPOLY_CMD,      CPOLY_CMD,  INT_CMD, ALLOW_NC | ALLOW_RING}
401,{D(jjPOLY2_OP2), '-',            CPOLY_CMD,      INT_CMD,    CPOLY_CMD,  ALLOW_NC | ALLOW_RING}
402,{D(jjMINUS_BIM), '-',            CMATRIX_CMD,    CMATRIX_CMD,CMATRIX_CMD, ALLOW_NC | ALLOW_RING}
403#endif
404,{D(jjRMINUS),    '-',            RING_CMD,       RING_CMD,   STRING_CMD, ALLOW_LP | ALLOW_RING}
405,{D(jjMINUS_B_P), '-',            BUCKET_CMD,     BUCKET_CMD, POLY_CMD, ALLOW_NC | ALLOW_RING}
406,{  jjWRONG2 ,    '-',            NONE,           IDEAL_CMD,  IDEAL_CMD, ALLOW_NC | ALLOW_RING}
407,{  jjWRONG2 ,    '-',            NONE,           MODUL_CMD,  MODUL_CMD, ALLOW_NC | ALLOW_RING}
408,{D(jjTIMES_I),   '*',            INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
409,{D(jjTIMES_BI),  '*',            BIGINT_CMD,     BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
410,{D(jjTIMES_N),   '*',            NUMBER_CMD,     NUMBER_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
411,{D(jjTIMES_P),   '*',            POLY_CMD,       POLY_CMD,   POLY_CMD, ALLOW_NC | ALLOW_RING}
412,{D(jjTIMES_P),   '*',            VECTOR_CMD,     POLY_CMD,   VECTOR_CMD, ALLOW_NC | ALLOW_RING}
413,{D(jjTIMES_P),   '*',            VECTOR_CMD,     VECTOR_CMD, POLY_CMD, ALLOW_NC | ALLOW_RING}
414,{D(jjTIMES_MA_P1),'*',           IDEAL_CMD,      IDEAL_CMD,  POLY_CMD, ALLOW_NC | ALLOW_RING}
415,{D(jjTIMES_MA_P2),'*',           IDEAL_CMD,      POLY_CMD,   IDEAL_CMD, ALLOW_NC | ALLOW_RING}
416,{D(jjTIMES_MA_P1),'*',           MODUL_CMD,      MODUL_CMD,  POLY_CMD, ALLOW_NC | ALLOW_RING}
417,{D(jjTIMES_MA_P2),'*',           MODUL_CMD,      POLY_CMD,   MODUL_CMD, ALLOW_NC | ALLOW_RING}
418,{D(jjTIMES_ID),  '*',            IDEAL_CMD,      IDEAL_CMD,  IDEAL_CMD, ALLOW_NC | ALLOW_RING}
419,{D(jjTIMES_MA_P1),'*',           MODUL_CMD,      IDEAL_CMD,  VECTOR_CMD, ALLOW_NC | ALLOW_RING}
420,{D(jjTIMES_MA_P2),'*',           MODUL_CMD,      VECTOR_CMD, IDEAL_CMD, ALLOW_NC | ALLOW_RING}
421,{D(jjTIMES_ID),  '*',            MODUL_CMD,      IDEAL_CMD,  MODUL_CMD, ALLOW_NC | ALLOW_RING}
422,{D(jjTIMES_ID),  '*',            MODUL_CMD,      MODUL_CMD,  IDEAL_CMD, ALLOW_NC | ALLOW_RING}
423,{D(jjTIMES_MA_P1),'*',           MATRIX_CMD,     MATRIX_CMD, POLY_CMD, ALLOW_NC | ALLOW_RING}
424,{D(jjTIMES_MA_P2),'*',           MATRIX_CMD,     POLY_CMD,   MATRIX_CMD, ALLOW_NC | ALLOW_RING}
425,{D(jjTIMES_MA_N1),'*',           MATRIX_CMD,     MATRIX_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
426,{D(jjTIMES_MA_N2),'*',           MATRIX_CMD,     NUMBER_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
427,{D(jjTIMES_MA_I1),'*',           MATRIX_CMD,     MATRIX_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
428,{D(jjTIMES_MA_I2),'*',           MATRIX_CMD,     INT_CMD,    MATRIX_CMD, ALLOW_NC | ALLOW_RING}
429,{D(jjTIMES_MA),  '*',            MATRIX_CMD,     MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
430,{D(jjTIMES_MA_BI1),'*',          MATRIX_CMD,     MATRIX_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
431,{D(jjTIMES_MA_BI2),'*',          MATRIX_CMD,     BIGINT_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
432,{D(jjTIMES_SM),  '*',            SMATRIX_CMD,    SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING}
433,{D(jjTIMES_BIM), '*',            BIGINTMAT_CMD,  BIGINTMAT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
434,{D(jjOP_BIM_I),  '*',            BIGINTMAT_CMD,  BIGINTMAT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
435,{D(jjOP_I_BIM),  '*',            BIGINTMAT_CMD,  INT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
436,{D(jjOP_BIM_BI),  '*',           BIGINTMAT_CMD,  BIGINTMAT_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}
437,{D(jjOP_BI_BIM),  '*',           BIGINTMAT_CMD,  BIGINT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
438,{D(jjOP_BIM_I),  '*',            BIGINTVEC_CMD,  BIGINTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
439,{D(jjOP_I_BIM),  '*',            BIGINTVEC_CMD,  INT_CMD, BIGINTVEC_CMD, ALLOW_NC | ALLOW_RING}
440,{D(jjOP_BIM_BI),  '*',           BIGINTVEC_CMD,  BIGINTVEC_CMD, BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}
441,{D(jjOP_BI_BIM),  '*',           BIGINTVEC_CMD,  BIGINT_CMD, BIGINTVEC_CMD, ALLOW_NC | ALLOW_RING}
442,{D(jjOP_IV_I),   '*',            INTVEC_CMD,     INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
443,{D(jjOP_I_IV),   '*',            INTVEC_CMD,     INT_CMD,    INTVEC_CMD, ALLOW_NC | ALLOW_RING}
444,{D(jjOP_IV_I),   '*',            INTMAT_CMD,     INTMAT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
445,{D(jjOP_I_IV),   '*',            INTMAT_CMD,     INT_CMD,    INTMAT_CMD, ALLOW_NC | ALLOW_RING}
446,{D(jjTIMES_IV),  '*',            INTVEC_CMD,     INTMAT_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
447,{D(jjTIMES_IV),  '*',            INTMAT_CMD,     INTMAT_CMD, INTMAT_CMD, ALLOW_NC | ALLOW_RING}
448,{D(jjTIMES_IV),  '*',            INTMAT_CMD,     INTVEC_CMD, INTMAT_CMD, ALLOW_NC | ALLOW_RING}
449#ifdef SINGULAR_4_2
450,{D(jjNUMBER2_OP2),'*',           CNUMBER_CMD,    CNUMBER_CMD,CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
451,{D(jjNUMBER2_OP2),'*',           CNUMBER_CMD,    INT_CMD,    CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
452,{D(jjNUMBER2_OP2),'*',           CNUMBER_CMD,    CNUMBER_CMD,INT_CMD, ALLOW_NC | ALLOW_RING}
453,{D(jjNUMBER2_OP2),'*',           CNUMBER_CMD,    BIGINT_CMD, CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
454,{D(jjNUMBER2_OP2),'*',           CNUMBER_CMD,    CNUMBER_CMD,BIGINT_CMD, ALLOW_NC | ALLOW_RING}
455,{D(jjPOLY2_OP2), '*',            CPOLY_CMD,      CPOLY_CMD,  CPOLY_CMD, ALLOW_NC | ALLOW_RING}
456,{D(jjPOLY2_OP2), '*',            CPOLY_CMD,      CPOLY_CMD,  INT_CMD, ALLOW_NC | ALLOW_RING}
457,{D(jjPOLY2_OP2), '*',            CPOLY_CMD,      INT_CMD,    CPOLY_CMD,  ALLOW_NC | ALLOW_RING}
458,{D(jjTIMES_BIM), '*',            CMATRIX_CMD,    CMATRIX_CMD, CMATRIX_CMD, ALLOW_NC | ALLOW_RING}
459#endif
460,{  jjWRONG2,     '*',            0,              MODUL_CMD, MODUL_CMD, ALLOW_NC | ALLOW_RING|NO_CONVERSION}
461,{D(jjDIV_N),     '/',            NUMBER_CMD,     NUMBER_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
462,{D(jjDIV_P),     '/',            POLY_CMD,       POLY_CMD,   POLY_CMD, ALLOW_NC | ALLOW_RING}
463,{D(jjDIV_P),     '/',            VECTOR_CMD,     VECTOR_CMD, POLY_CMD, ALLOW_NC | ALLOW_RING}
464,{D(jjDIV_Ma),    '/',            MATRIX_CMD,     MATRIX_CMD, POLY_CMD, ALLOW_PLURAL | NO_RING}
465,{D(jjDIVMOD_I),  '/',            INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
466,{D(jjDIV_BI),    '/',            BIGINT_CMD,     BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
467,{D(jjOP_IV_I),   '/',            INTVEC_CMD,     INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
468,{D(jjOP_IV_I),   '/',            INTMAT_CMD,     INTMAT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
469,{D(jjCRING_Zp),  '/',            CRING_CMD,      CRING_CMD,  INT_CMD, ALLOW_PLURAL | ALLOW_RING}
470,{D(jjCRING_Zm),  '/',            CRING_CMD,      CRING_CMD,  BIGINT_CMD, ALLOW_PLURAL | ALLOW_RING}
471#ifdef SINGULAR_4_2
472,{D(jjNUMBER2_OP2),'/',           CNUMBER_CMD,    CNUMBER_CMD,CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
473,{D(jjNUMBER2_OP2),'/',           CNUMBER_CMD,    INT_CMD,    CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
474,{D(jjNUMBER2_OP2),'/',           CNUMBER_CMD,    CNUMBER_CMD,INT_CMD, ALLOW_NC | ALLOW_RING}
475,{D(jjNUMBER2_OP2),'/',           CNUMBER_CMD,    BIGINT_CMD, CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
476,{D(jjNUMBER2_OP2),'/',           CNUMBER_CMD,    CNUMBER_CMD,BIGINT_CMD, ALLOW_NC | ALLOW_RING}
477#endif
478,{D(jjDIVMOD_I),  INTDIV_CMD,     INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
479,{D(jjDIV_BI),    INTDIV_CMD,     BIGINT_CMD,     BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
480,{D(jjOP_IV_I),   INTDIV_CMD,     INTVEC_CMD,     INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
481,{D(jjOP_IV_I),   INTDIV_CMD,     INTMAT_CMD,     INTMAT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
482,{D(jjDIV_P),     INTDIV_CMD,     POLY_CMD,       POLY_CMD,   POLY_CMD, ALLOW_PLURAL | ALLOW_RING}
483,{D(jjDIV_P),     INTDIV_CMD,     VECTOR_CMD,     VECTOR_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING}
484,{D(jjDIVMOD_I),  '%',            INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
485,{D(jjMOD_BI),    '%',            BIGINT_CMD,     BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
486,{D(jjOP_IV_I),   '%',            INTVEC_CMD,     INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
487,{D(jjOP_IV_I),   '%',            INTMAT_CMD,     INTMAT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
488,{D(jjMOD_N),     '%',            NUMBER_CMD,     NUMBER_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
489,{D(jjMOD_P),     '%',            POLY_CMD,       POLY_CMD,   POLY_CMD, NO_NC | NO_RING}
490#ifdef SINGULAR_4_2
491,{D(jjNUMBER2_OP2),'%',           CNUMBER_CMD,    CNUMBER_CMD,CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
492,{D(jjNUMBER2_OP2),'%',           CNUMBER_CMD,    INT_CMD,    CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
493,{D(jjNUMBER2_OP2),'%',           CNUMBER_CMD,    CNUMBER_CMD,INT_CMD, ALLOW_NC | ALLOW_RING}
494,{D(jjNUMBER2_OP2),'%',           CNUMBER_CMD,    BIGINT_CMD, CNUMBER_CMD, ALLOW_NC | ALLOW_RING}
495,{D(jjNUMBER2_OP2),'%',           CNUMBER_CMD,    CNUMBER_CMD,BIGINT_CMD, ALLOW_NC | ALLOW_RING}
496#endif
497,{D(jjPOWER_I),   '^',            INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
498,{D(jjPOWER_BI),   '^',           BIGINT_CMD,     BIGINT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
499,{D(jjPOWER_N),   '^',            NUMBER_CMD,     NUMBER_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
500,{D(jjPOWER_P),   '^',            POLY_CMD,       POLY_CMD,   INT_CMD, ALLOW_NC | ALLOW_RING}
501,{D(jjPOWER_ID),  '^',            IDEAL_CMD,      IDEAL_CMD,  INT_CMD, ALLOW_PLURAL | ALLOW_RING}
502#ifdef SINGULAR_4_2
503,{D(jjNUMBER2_POW),'^',           CNUMBER_CMD,    CNUMBER_CMD,INT_CMD, ALLOW_NC | ALLOW_RING}
504,{D(jjPOLY2_POW), '^',            CPOLY_CMD,      CPOLY_CMD,  INT_CMD, ALLOW_PLURAL | ALLOW_RING}
505#endif
506,{D(jjLE_I),      LE,             INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
507,{D(jjLE_BI),     LE,             INT_CMD,        BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
508,{D(jjLE_N),      LE,             INT_CMD,        NUMBER_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
509,{D(jjCOMPARE_S), LE,             INT_CMD,        STRING_CMD, STRING_CMD, ALLOW_NC | ALLOW_RING}
510,{D(jjCOMPARE_IV_I),LE,           INT_CMD,        INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
511,{D(jjCOMPARE_IV),LE,             INT_CMD,        INTVEC_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
512,{D(jjCOMPARE_P), LE,             INT_CMD,        POLY_CMD,   POLY_CMD, ALLOW_NC | ALLOW_RING}
513,{D(jjCOMPARE_P), LE,             INT_CMD,        VECTOR_CMD, VECTOR_CMD, ALLOW_NC | ALLOW_RING}
514,{D(jjCOMPARE_MA),LE,             INT_CMD,        MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING | NO_CONVERSION }
515,{D(jjLT_I),      '<',            INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
516,{D(jjLT_BI),     '<',            INT_CMD,        BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
517,{D(jjLT_N),      '<',            INT_CMD,        NUMBER_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
518,{D(jjCOMPARE_IV_I),'<',          INT_CMD,        INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
519,{D(jjCOMPARE_IV),'<',            INT_CMD,        INTVEC_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
520,{D(jjCOMPARE_S), '<',            INT_CMD,        STRING_CMD, STRING_CMD, ALLOW_NC | ALLOW_RING}
521,{D(jjCOMPARE_P), '<',            INT_CMD,        POLY_CMD,   POLY_CMD, ALLOW_NC | ALLOW_RING}
522,{D(jjCOMPARE_P), '<',            INT_CMD,        VECTOR_CMD, VECTOR_CMD, ALLOW_NC | ALLOW_RING}
523,{D(jjCOMPARE_MA),'<',            INT_CMD,        MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING | NO_CONVERSION }
524,{D(jjGE_I),      GE,             INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
525,{D(jjGE_BI),     GE,             INT_CMD,        BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
526,{D(jjGE_N),      GE,             INT_CMD,        NUMBER_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
527,{D(jjCOMPARE_S), GE,             INT_CMD,        STRING_CMD, STRING_CMD, ALLOW_NC | ALLOW_RING}
528,{D(jjCOMPARE_IV_I),GE,           INT_CMD,        INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
529,{D(jjCOMPARE_IV),GE,             INT_CMD,        INTVEC_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
530,{D(jjCOMPARE_P), GE,             INT_CMD,        POLY_CMD,   POLY_CMD, ALLOW_NC | ALLOW_RING}
531,{D(jjCOMPARE_P), GE,             INT_CMD,        VECTOR_CMD, VECTOR_CMD, ALLOW_NC | ALLOW_RING}
532,{D(jjCOMPARE_MA),GE,             INT_CMD,        MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING | NO_CONVERSION }
533,{D(jjGT_I),      '>',            INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
534,{D(jjGT_BI),     '>',            INT_CMD,        BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
535,{D(jjGT_N),      '>',            INT_CMD,        NUMBER_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
536,{D(jjCOMPARE_S), '>',            INT_CMD,        STRING_CMD, STRING_CMD, ALLOW_NC | ALLOW_RING}
537,{D(jjCOMPARE_IV_I),'>',          INT_CMD,        INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
538,{D(jjCOMPARE_IV),'>',            INT_CMD,        INTVEC_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
539,{D(jjCOMPARE_P), '>',            INT_CMD,        POLY_CMD,   POLY_CMD, ALLOW_NC | ALLOW_RING}
540,{D(jjCOMPARE_P), '>',            INT_CMD,        VECTOR_CMD, VECTOR_CMD, ALLOW_NC | ALLOW_RING}
541,{D(jjCOMPARE_MA),'>',            INT_CMD,        MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING | NO_CONVERSION }
542,{D(jjAND_I),     '&',            INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
543,{D(jjOR_I),      '|',            INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
544,{D(jjEQUAL_I),   EQUAL_EQUAL,    INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
545,{D(jjEQUAL_I),   EQUAL_EQUAL,    INT_CMD,        RING_CMD,   INT_CMD, ALLOW_NC | ALLOW_RING}
546,{D(jjEQUAL_I),   EQUAL_EQUAL,    INT_CMD,        RING_CMD,   RING_CMD, ALLOW_NC | ALLOW_RING}
547,{D(jjEQUAL_BI),  EQUAL_EQUAL,    INT_CMD,        BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
548,{D(jjEQUAL_N),   EQUAL_EQUAL,    INT_CMD,        NUMBER_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
549,{D(jjCOMPARE_S), EQUAL_EQUAL,    INT_CMD,        STRING_CMD, STRING_CMD, ALLOW_NC | ALLOW_RING}
550,{D(jjEQUAL_P),   EQUAL_EQUAL,    INT_CMD,        POLY_CMD,   POLY_CMD, ALLOW_NC | ALLOW_RING}
551,{D(jjEQUAL_P),   EQUAL_EQUAL,    INT_CMD,        VECTOR_CMD, VECTOR_CMD, ALLOW_NC | ALLOW_RING}
552,{D(jjCOMPARE_IV_I),EQUAL_EQUAL,  INT_CMD,        INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
553,{D(jjCOMPARE_IV),EQUAL_EQUAL,    INT_CMD,        INTVEC_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
554,{D(jjCOMPARE_IV),EQUAL_EQUAL,    INT_CMD,        INTMAT_CMD, INTMAT_CMD, ALLOW_NC | ALLOW_RING}
555,{D(jjCOMPARE_BIM),EQUAL_EQUAL,   INT_CMD,        BIGINTMAT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
556,{D(jjCOMPARE_BIM),EQUAL_EQUAL,   INT_CMD,        BIGINTVEC_CMD, BIGINTVEC_CMD, ALLOW_NC | ALLOW_RING}
557#ifdef SINGULAR_4_2
558,{D(jjCOMPARE_BIM),EQUAL_EQUAL,   INT_CMD,        CMATRIX_CMD, CMATRIX_CMD, ALLOW_NC | ALLOW_RING}
559#endif
560,{D(jjEQUAL_CR),  EQUAL_EQUAL,    INT_CMD,        CRING_CMD,  CRING_CMD, ALLOW_NC | ALLOW_RING}
561,{D(jjEQUAL_Ma),  EQUAL_EQUAL,    INT_CMD,        MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
562,{D(jjEQUAL_SM),  EQUAL_EQUAL,    INT_CMD,        SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING}
563,{D(jjEQUAL_R),   EQUAL_EQUAL,    INT_CMD,        RING_CMD,   RING_CMD, ALLOW_NC | ALLOW_RING}
564,{  jjWRONG2 ,    EQUAL_EQUAL,    0,              IDEAL_CMD,  IDEAL_CMD, ALLOW_NC | ALLOW_RING}
565,{  jjWRONG2 ,    EQUAL_EQUAL,    0,              MODUL_CMD,  MODUL_CMD, ALLOW_NC | ALLOW_RING}
566,{  jjWRONG2 ,    EQUAL_EQUAL,    0,              IDEAL_CMD,  MODUL_CMD, ALLOW_NC | ALLOW_RING}
567,{  jjWRONG2 ,    EQUAL_EQUAL,    0,              MODUL_CMD,  IDEAL_CMD, ALLOW_NC | ALLOW_RING}
568,{D(jjEQUAL_I),   NOTEQUAL,       INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
569,{D(jjEQUAL_BI),  NOTEQUAL,       INT_CMD,        BIGINT_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING}
570,{D(jjEQUAL_N),   NOTEQUAL,       INT_CMD,        NUMBER_CMD, NUMBER_CMD, ALLOW_NC | ALLOW_RING}
571,{D(jjCOMPARE_S), NOTEQUAL,       INT_CMD,        STRING_CMD, STRING_CMD, ALLOW_NC | ALLOW_RING}
572,{D(jjEQUAL_P),   NOTEQUAL,       INT_CMD,        POLY_CMD,   POLY_CMD, ALLOW_NC | ALLOW_RING}
573,{D(jjEQUAL_P),   NOTEQUAL,       INT_CMD,        VECTOR_CMD, VECTOR_CMD, ALLOW_NC | ALLOW_RING}
574,{D(jjCOMPARE_IV),NOTEQUAL,       INT_CMD,        INTVEC_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
575,{D(jjCOMPARE_IV),NOTEQUAL,       INT_CMD,        INTMAT_CMD, INTMAT_CMD, ALLOW_NC | ALLOW_RING}
576,{D(jjEQUAL_Ma),  NOTEQUAL,       INT_CMD,        MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING}
577,{D(jjEQUAL_SM),  NOTEQUAL,       INT_CMD,        SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING}
578,{D(jjCOMPARE_BIM),NOTEQUAL,      INT_CMD,        BIGINTMAT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING}
579,{D(jjCOMPARE_BIM),NOTEQUAL,      INT_CMD,        BIGINTVEC_CMD, BIGINTVEC_CMD, ALLOW_NC | ALLOW_RING}
580,{D(jjEQUAL_CR),  NOTEQUAL,       INT_CMD,        CRING_CMD,  CRING_CMD, ALLOW_NC | ALLOW_RING}
581,{  jjWRONG2 ,    NOTEQUAL,       0,              IDEAL_CMD,  IDEAL_CMD, ALLOW_NC | ALLOW_RING}
582,{  jjWRONG2 ,    NOTEQUAL,       0,              MODUL_CMD,  MODUL_CMD, ALLOW_NC | ALLOW_RING}
583,{  jjWRONG2 ,    NOTEQUAL,       0,              IDEAL_CMD,  MODUL_CMD, ALLOW_NC | ALLOW_RING}
584,{  jjWRONG2 ,    NOTEQUAL,       0,              MODUL_CMD,  IDEAL_CMD, ALLOW_NC | ALLOW_RING}
585,{D(jjEQUAL_R),   NOTEQUAL,       INT_CMD,        RING_CMD,   RING_CMD, ALLOW_NC | ALLOW_RING}
586,{D(jjDOTDOT),    DOTDOT,         INTVEC_CMD,     INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
587,{D(jjINDEX_I),   '[',            INT_CMD,        INTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
588,{D(jjINDEX_IV),  '[',            INT_CMD,        INTVEC_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
589,{D(jjINDEX_I),   '[',            BIGINT_CMD,     BIGINTVEC_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
590,{D(jjINDEX_IV),  '[',            BIGINT_CMD,     BIGINTVEC_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
591,{D(jjINDEX_I),   '[',            POLY_CMD,       IDEAL_CMD,  INT_CMD, ALLOW_NC | ALLOW_RING}
592,{D(jjINDEX_I),   '[',            POLY_CMD,       MAP_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
593,{D(jjINDEX_IV),  '[',            POLY_CMD,       IDEAL_CMD,  INTVEC_CMD, ALLOW_NC | ALLOW_RING}
594,{D(jjINDEX_I),   '[',            VECTOR_CMD,     MODUL_CMD,  INT_CMD, ALLOW_NC | ALLOW_RING}
595,{D(jjINDEX_IV),  '[',            VECTOR_CMD,     MODUL_CMD,  INTVEC_CMD, ALLOW_NC | ALLOW_RING}
596,{D(jjINDEX_I),   '[',            STRING_CMD,     STRING_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
597,{D(jjINDEX_IV),  '[',            STRING_CMD,     STRING_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
598,{D(jjINDEX_I),   '[',            ANY_TYPE/*set by p*/,LIST_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
599,{D(jjINDEX_IV),  '[',            ANY_TYPE/*set by p*/,LIST_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
600,{D(jjINDEX_P),   '[',            POLY_CMD,       POLY_CMD,   INT_CMD, ALLOW_NC | ALLOW_RING}
601,{D(jjINDEX_PBu), '[',            POLY_CMD,       BUCKET_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
602,{D(jjINDEX_P_IV),'[',            POLY_CMD,       POLY_CMD,   INTVEC_CMD, ALLOW_NC | ALLOW_RING}
603,{D(jjINDEX_V),   '[',            POLY_CMD,       VECTOR_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
604,{D(jjINDEX_V_IV),'[',            VECTOR_CMD,     VECTOR_CMD, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
605,{D(jjRING_1),    '[',            RING_CMD,     CRING_CMD, ANY_TYPE, ALLOW_NC | ALLOW_RING}
606,{D(jjPROC),      '(',            ANY_TYPE/*set by p*/,PROC_CMD, DEF_CMD, ALLOW_NC | ALLOW_RING}
607,{D(jjMAP),       '(',            ANY_TYPE/*set by p*/,MAP_CMD, DEF_CMD, ALLOW_NC | ALLOW_RING}
608,{D(jjLOAD2),     '(',            NONE,             LIB_CMD,    STRING_CMD, ALLOW_NC |ALLOW_RING}
609,{D(jjKLAMMER),   '(',            ANY_TYPE/*set by p*/,ANY_TYPE, INT_CMD, ALLOW_NC | ALLOW_RING}
610,{D(jjKLAMMER_IV),'(',            ANY_TYPE/*set by p*/,ANY_TYPE, INTVEC_CMD, ALLOW_NC | ALLOW_RING}
611,{D(jjCOLON),     ':',            INTVEC_CMD,     INT_CMD,    INT_CMD, ALLOW_NC | ALLOW_RING}
612// and the procedures with 2 arguments:
613,{D(jjALIGN_V),   ALIGN_CMD,      VECTOR_CMD,     VECTOR_CMD, INT_CMD, ALLOW_NC | ALLOW_RING}
614,{D(jjALIGN_M),   ALIGN_CMD,      MODUL_CMD,      MODUL_CMD,  INT_CMD, ALLOW_NC | ALLOW_RING}
615,{D(atATTRIB2),   ATTRIB_CMD,     NONE/*set by p*/,DEF_CMD,   STRING_CMD, ALLOW_NC | ALLOW_RING}
616,{D(jjBETTI2),    BETTI_CMD,      INTMAT_CMD,     LIST_CMD,   INT_CMD, ALLOW_PLURAL | ALLOW_RING}
617,{D(syBetti2),    BETTI_CMD,      INTMAT_CMD,     RESOLUTION_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}
618,{D(jjBETTI2_ID), BETTI_CMD,      INTMAT_CMD,     IDEAL_CMD,  INT_CMD, ALLOW_PLURAL | ALLOW_RING}
619,{D(jjBETTI2_ID), BETTI_CMD,      INTMAT_CMD,     MODUL_CMD,  INT_CMD, ALLOW_PLURAL | ALLOW_RING}
620#if defined(HAVE_PLURAL) || defined(HAVE_SHIFTBBA)
621,{D(jjBRACKET),   BRACKET_CMD,    POLY_CMD,       POLY_CMD,   POLY_CMD, ALLOW_NC | ALLOW_RING}
622#endif
623,{D(jjCHINREM_BI),CHINREM_CMD,    BIGINT_CMD,     INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}
624//,{D(jjCHINREM_P), CHINREM_CMD,    POLY_CMD,       LIST_CMD,   INTVEC_CMD, ALLOW_PLURAL}
625,{D(jjCHINREM_ID),CHINREM_CMD,    ANY_TYPE/*set by p*/,LIST_CMD,INTVEC_CMD, ALLOW_NC |ALLOW_RING}
626,{D(jjCHINREM_ID),CHINREM_CMD,    ANY_TYPE/*set by p*/,LIST_CMD,LIST_CMD, ALLOW_NC |ALLOW_RING}
627#ifdef SINGULAR_4_2
628,{D(jjNUMBER2CR), CNUMBER_CMD,    CNUMBER_CMD,     INT_CMD,    CRING_CMD, ALLOW_NC |ALLOW_RING}
629,{D(jjNUMBER2CR), CNUMBER_CMD,    CNUMBER_CMD,     BIGINT_CMD, CRING_CMD, ALLOW_NC |ALLOW_RING}
630,{D(jjNUMBER2CR), CNUMBER_CMD,    CNUMBER_CMD,     NUMBER_CMD, CRING_CMD, ALLOW_NC |ALLOW_RING}
631#endif
632,{D(jjCOEF),      COEF_CMD,       MATRIX_CMD,     POLY_CMD,   POLY_CMD, ALLOW_NC |ALLOW_RING}
633,{D(jjCOEF_Id),   COEF_CMD,       MATRIX_CMD,     IDEAL_CMD,  POLY_CMD, ALLOW_NC |ALLOW_RING}
634,{D(jjCOEFFS_Id), COEFFS_CMD,     MATRIX_CMD,     IDEAL_CMD,  POLY_CMD, ALLOW_NC |ALLOW_RING}
635,{D(jjCOEFFS_Id), COEFFS_CMD,     MATRIX_CMD,     MODUL_CMD,  POLY_CMD, ALLOW_NC |ALLOW_RING}
636,{D(jjCOEFFS2_KB),COEFFS_CMD,     MATRIX_CMD,     IDEAL_CMD,  IDEAL_CMD, ALLOW_NC |ALLOW_RING}
637,{D(jjCOEFFS2_KB),COEFFS_CMD,     MATRIX_CMD,     MODUL_CMD,  MODUL_CMD, ALLOW_NC |ALLOW_RING}
638,{D(jjCONTRACT),  CONTRACT_CMD,   MATRIX_CMD,     IDEAL_CMD,  IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}
639,{D(jjDEG_IV),    DEG_CMD,        INT_CMD,        POLY_CMD,   INTVEC_CMD, ALLOW_NC |ALLOW_RING}
640,{D(jjDEG_IV),    DEG_CMD,        INT_CMD,        VECTOR_CMD, INTVEC_CMD, ALLOW_NC |ALLOW_RING}
641,{D(jjDEG_M_IV),  DEG_CMD,        INT_CMD,        MATRIX_CMD, INTVEC_CMD, ALLOW_NC |ALLOW_RING}
642,{D(jjDelete_IV), DELETE_CMD,     INTVEC_CMD,     INTVEC_CMD, INT_CMD, ALLOW_NC |ALLOW_RING}
643,{D(jjDelete_ID), DELETE_CMD,     IDEAL_CMD,      IDEAL_CMD,  INT_CMD, ALLOW_NC |ALLOW_RING}
644,{D(jjDelete_ID_IV),DELETE_CMD,   IDEAL_CMD,      IDEAL_CMD,  INTVEC_CMD, ALLOW_NC |ALLOW_RING}
645,{D(jjDelete_ID), DELETE_CMD,     MODUL_CMD,      MODUL_CMD,  INT_CMD, ALLOW_NC |ALLOW_RING}
646,{D(jjDelete_ID_IV),DELETE_CMD,   MODUL_CMD,      MODUL_CMD,  INTVEC_CMD, ALLOW_NC |ALLOW_RING}
647,{D(lDelete),     DELETE_CMD,     LIST_CMD,       LIST_CMD,   INT_CMD, ALLOW_NC |ALLOW_RING}
648,{D(lDeleteIV),   DELETE_CMD,     LIST_CMD,       LIST_CMD,   INTVEC_CMD, ALLOW_NC |ALLOW_RING}
649,{D(jjDET2_S),    DET_CMD,        POLY_CMD,       SMATRIX_CMD,STRING_CMD, NO_NC |NO_RING}
650,{D(jjDET2),      DET_CMD,        POLY_CMD,       MATRIX_CMD, STRING_CMD, NO_NC |ALLOW_RING}
651,{D(jjDIFF_P),    DIFF_CMD,       POLY_CMD,       POLY_CMD,   POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
652,{D(jjDIFF_P),    DIFF_CMD,       VECTOR_CMD,     VECTOR_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
653,{D(jjDIFF_ID),   DIFF_CMD,       IDEAL_CMD,      IDEAL_CMD,  POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
654,{D(jjDIFF_ID_ID),DIFF_CMD,       MATRIX_CMD,     IDEAL_CMD,  IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}
655,{D(jjDIFF_ID),   DIFF_CMD,       MODUL_CMD,      MODUL_CMD,  POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
656,{D(jjDIFF_ID),   DIFF_CMD,       MATRIX_CMD,     MATRIX_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
657,{D(jjDIFF_COEF), DIFF_CMD,       NUMBER_CMD,     NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL |ALLOW_RING}
658,{D(jjDIM2),      DIM_CMD,        INT_CMD,        IDEAL_CMD,  IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}
659,{D(jjDIM2),      DIM_CMD,        INT_CMD,        MODUL_CMD,  IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}
660,{D(jjDIVISION),  DIVISION_CMD,   LIST_CMD,       IDEAL_CMD,  IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}
661,{D(jjDIVISION),  DIVISION_CMD,   LIST_CMD,       MODUL_CMD,  MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}
662,{D(jjELIMIN),    ELIMINATION_CMD,IDEAL_CMD,      IDEAL_CMD,  POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
663,{D(jjELIMIN),    ELIMINATION_CMD,MODUL_CMD,      MODUL_CMD,  POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
664,{D(jjELIMIN_IV), ELIMINATION_CMD,IDEAL_CMD,      IDEAL_CMD,  INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}
665,{D(jjELIMIN_IV), ELIMINATION_CMD,MODUL_CMD,      MODUL_CMD,  INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}
666,{D(jjEXPORTTO),  EXPORTTO_CMD,   NONE,           PACKAGE_CMD, IDHDL, ALLOW_NC |ALLOW_RING}
667,{D(jjEXTGCD_I),  EXTGCD_CMD,     LIST_CMD,       INT_CMD,    INT_CMD, ALLOW_PLURAL |ALLOW_RING}
668,{D(jjEXTGCD_BI), EXTGCD_CMD,     LIST_CMD,       BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL |ALLOW_RING}
669,{D(jjEXTGCD_P),  EXTGCD_CMD,     LIST_CMD,       POLY_CMD,   POLY_CMD, NO_NC |NO_RING}
670,{D(jjFAC_P2),    FAC_CMD,        IDEAL_CMD,      POLY_CMD,   INT_CMD, NO_NC |NO_RING}
671,{D(jjFACSTD2),   FACSTD_CMD,     LIST_CMD,       IDEAL_CMD,  IDEAL_CMD, NO_NC |NO_RING}
672,{D(jjFAREY_BI),  FAREY_CMD,      NUMBER_CMD,     BIGINT_CMD,  BIGINT_CMD, ALLOW_PLURAL |NO_RING}
673,{D(jjFAREY_ID),  FAREY_CMD,      IDEAL_CMD,      IDEAL_CMD,   BIGINT_CMD, ALLOW_PLURAL |NO_RING}
674,{D(jjFAREY_ID),  FAREY_CMD,      MODUL_CMD,      MODUL_CMD,   BIGINT_CMD, ALLOW_PLURAL |NO_RING}
675,{D(jjFAREY_ID),  FAREY_CMD,      MATRIX_CMD,     MATRIX_CMD,  BIGINT_CMD, ALLOW_PLURAL |NO_RING}
676,{D(jjFAREY_ID),  FAREY_CMD,      SMATRIX_CMD,    SMATRIX_CMD, BIGINT_CMD, ALLOW_PLURAL |NO_RING}
677,{D(jjFAREY_LI),  FAREY_CMD,      LIST_CMD,       LIST_CMD,    BIGINT_CMD, ALLOW_PLURAL |NO_RING}
678,{D(jjFETCH),     FETCH_CMD,      ANY_TYPE/*set by p*/,RING_CMD,  ANY_TYPE, ALLOW_NC |ALLOW_RING}
679,{D(fglmProc),    FGLM_CMD,       IDEAL_CMD,      RING_CMD,   DEF_CMD, NO_NC |NO_RING}
680,{D(fglmQuotProc),FGLMQUOT_CMD,   IDEAL_CMD,      IDEAL_CMD,  POLY_CMD, NO_NC |NO_RING}
681,{D(jjFIND2),     FIND_CMD,       INT_CMD,        STRING_CMD, STRING_CMD, ALLOW_NC |ALLOW_RING}
682,{D(jjFRES),      FRES_CMD,       RESOLUTION_CMD, IDEAL_CMD,  INT_CMD, NO_NC |NO_RING}
683,{D(jjFRES),      FRES_CMD,       RESOLUTION_CMD, MODUL_CMD,  INT_CMD, NO_NC |NO_RING}
684,{D(jjFWALK),     FWALK_CMD,      IDEAL_CMD,      RING_CMD,   DEF_CMD, NO_NC |NO_RING}
685,{D(jjGCD_I),     GCD_CMD,        INT_CMD,        INT_CMD,    INT_CMD, ALLOW_PLURAL |ALLOW_RING}
686,{D(jjGCD_N),     GCD_CMD,        NUMBER_CMD,     NUMBER_CMD, NUMBER_CMD, ALLOW_PLURAL |ALLOW_RING}
687,{D(jjGCD_BI),    GCD_CMD,        BIGINT_CMD,     BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL |ALLOW_RING}
688,{D(jjGCD_P),     GCD_CMD,        POLY_CMD,       POLY_CMD,   POLY_CMD, NO_NC |ALLOW_RING}
689,{D(jjHILBERT2),  HILBERT_CMD,    BIGINTVEC_CMD,  IDEAL_CMD,  INT_CMD, ALLOW_PLURAL | ALLOW_RING | NO_ZERODIVISOR}
690,{D(jjHILBERT2),  HILBERT_CMD,    BIGINTVEC_CMD,  MODUL_CMD,  INT_CMD, ALLOW_PLURAL | ALLOW_RING | NO_ZERODIVISOR}
691,{D(jjHOMOG1_WI), HOMOG_CMD,      INT_CMD,        IDEAL_CMD,  INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}
692,{D(jjHOMOG1_W),  HOMOG_CMD,      INT_CMD,        MODUL_CMD,  INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}
693,{D(jjHOMOG_P),   HOMOG_CMD,      POLY_CMD,       POLY_CMD,   POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
694,{D(jjHOMOG_P),   HOMOG_CMD,      VECTOR_CMD,     VECTOR_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
695,{D(jjHOMOG_ID),  HOMOG_CMD,      IDEAL_CMD,      IDEAL_CMD,  POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
696,{D(jjHOMOG_ID),  HOMOG_CMD,      MODUL_CMD,      MODUL_CMD,  POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
697,{D(jjRES),       HRES_CMD,       RESOLUTION_CMD, IDEAL_CMD,  INT_CMD, NO_NC |NO_RING}
698,{D(jjFETCH),     IMAP_CMD,       ANY_TYPE/*set by p*/,RING_CMD,  ANY_TYPE, ALLOW_NC |ALLOW_RING}
699,{D(jjIMPORTFROM),IMPORTFROM_CMD, NONE,           PACKAGE_CMD, ANY_TYPE, ALLOW_NC |ALLOW_RING}
700,{D(jjINDEPSET2), INDEPSET_CMD,   LIST_CMD,       IDEAL_CMD,  INT_CMD, NO_NC |NO_RING}
701,{D(lInsert),     INSERT_CMD,     LIST_CMD,       LIST_CMD,   DEF_CMD, ALLOW_NC |ALLOW_RING}
702,{D(jjINTERPOLATION),INTERPOLATE_CMD,IDEAL_CMD,   LIST_CMD,   INTVEC_CMD, NO_NC |NO_RING}
703,{D(jjINTERSECT), INTERSECT_CMD,  IDEAL_CMD,      IDEAL_CMD,  IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}
704,{D(jjINTERSECT), INTERSECT_CMD,  MODUL_CMD,      MODUL_CMD,  MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}
705,{D(jjJanetBasis2), JANET_CMD,    IDEAL_CMD,      IDEAL_CMD,  INT_CMD, ALLOW_PLURAL |NO_RING}
706,{D(jjJET_P),     JET_CMD,        POLY_CMD,       POLY_CMD,   INT_CMD, ALLOW_PLURAL |ALLOW_RING}
707,{D(jjJET_ID),    JET_CMD,        IDEAL_CMD,      IDEAL_CMD,  INT_CMD, ALLOW_PLURAL |ALLOW_RING}
708,{D(jjJET_P),     JET_CMD,        VECTOR_CMD,     VECTOR_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}
709,{D(jjJET_ID),    JET_CMD,        MODUL_CMD,      MODUL_CMD,  INT_CMD, ALLOW_PLURAL |ALLOW_RING}
710,{D(jjJET_ID),    JET_CMD,        MATRIX_CMD,     MATRIX_CMD,  INT_CMD, ALLOW_PLURAL |ALLOW_RING}
711,{D(jjKBASE2),    KBASE_CMD,      IDEAL_CMD,      IDEAL_CMD,  INT_CMD, ALLOW_PLURAL |ALLOW_RING |WARN_RING} /*ring-cf: warning at top level*/
712,{D(jjKBASE2),    KBASE_CMD,      MODUL_CMD,      MODUL_CMD,  INT_CMD, ALLOW_PLURAL |ALLOW_RING |WARN_RING} /*ring-cf: warning at top level*/
713,{D(jjKERNEL),    KERNEL_CMD,     IDEAL_CMD,      RING_CMD,   ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}
714,{D(atKILLATTR2), KILLATTR_CMD,   NONE,           IDHDL,      STRING_CMD, ALLOW_NC |ALLOW_RING}
715,{D(jjKoszul),    KOSZUL_CMD,     MATRIX_CMD,     INT_CMD,    INT_CMD, NO_NC |ALLOW_RING}
716,{D(jjKoszul_Id), KOSZUL_CMD,     MATRIX_CMD,     INT_CMD,    IDEAL_CMD, NO_NC |ALLOW_RING}
717,{D(jjRES),       KRES_CMD,       RESOLUTION_CMD, IDEAL_CMD,  INT_CMD, NO_NC |NO_RING}
718,{D(jjLIFT),      LIFT_CMD,       MATRIX_CMD,     IDEAL_CMD,  IDEAL_CMD, ALLOW_NC |ALLOW_RING}
719,{D(jjLIFT),      LIFT_CMD,       MATRIX_CMD,     MODUL_CMD,  MODUL_CMD, ALLOW_NC |ALLOW_RING}
720,{D(jjLIFTSTD),   LIFTSTD_CMD,    IDEAL_CMD,      IDEAL_CMD,  MATRIX_CMD, ALLOW_NC |ALLOW_RING}
721,{D(jjLIFTSTD),   LIFTSTD_CMD,    MODUL_CMD,      MODUL_CMD,  MATRIX_CMD, ALLOW_NC |ALLOW_RING}
722,{D(jjLOAD_E),    LOAD_CMD,       NONE,           STRING_CMD, STRING_CMD, ALLOW_NC |ALLOW_RING}
723,{D(jjRES),       LRES_CMD,       RESOLUTION_CMD, IDEAL_CMD,  INT_CMD, NO_NC |NO_RING}
724,{D(jjMODULO),    MODULO_CMD,     MODUL_CMD,      IDEAL_CMD,  IDEAL_CMD, ALLOW_NC |ALLOW_RING}
725,{D(jjMODULO),    MODULO_CMD,     MODUL_CMD,      MODUL_CMD,  MODUL_CMD, ALLOW_NC |ALLOW_RING}
726,{D(jjMONITOR2),  MONITOR_CMD,    NONE,           LINK_CMD, STRING_CMD, ALLOW_NC |ALLOW_RING}
727,{D(nuMPResMat),  MPRES_CMD,      MODUL_CMD,      IDEAL_CMD,  INT_CMD, NO_NC |NO_RING}
728,{D(jjNEWSTRUCT2),NEWSTRUCT_CMD,  NONE,           STRING_CMD, STRING_CMD, ALLOW_NC |ALLOW_RING}
729//,{D(jjRES),       MRES_CMD,       LIST_CMD,       IDEAL_CMD,  INT_CMD, NO_NC |ALLOW_RING}
730//,{D(jjRES),       MRES_CMD,       LIST_CMD,       MODUL_CMD,  INT_CMD, NO_NC |ALLOW_RING}
731,{D(jjRES),       MRES_CMD,       RESOLUTION_CMD, IDEAL_CMD,  INT_CMD, ALLOW_PLURAL |NO_RING}
732,{D(jjRES),       MRES_CMD,       RESOLUTION_CMD, MODUL_CMD,  INT_CMD, ALLOW_PLURAL |NO_RING}
733#ifdef SINGULAR_4_2
734,{D(jjNUMBER2CR), CNUMBER_CMD,    CNUMBER_CMD,    INT_CMD,    CRING_CMD, ALLOW_NC |ALLOW_RING}
735,{D(jjNUMBER2CR), CNUMBER_CMD,    CNUMBER_CMD,    BIGINT_CMD, CRING_CMD, ALLOW_NC |ALLOW_RING}
736,{D(jjNUMBER2CR), CNUMBER_CMD,    CNUMBER_CMD,    NUMBER_CMD, CRING_CMD, ALLOW_NC |ALLOW_RING}
737,{D(jjNUMBER2CR), CNUMBER_CMD,    CNUMBER_CMD,    CNUMBER_CMD,CRING_CMD, ALLOW_NC |ALLOW_RING}
738#endif
739,{D(jjPFAC2),     PFAC_CMD,       LIST_CMD,       BIGINT_CMD, INT_CMD, ALLOW_NC |ALLOW_RING}
740,{D(jjPFAC2),     PFAC_CMD,       LIST_CMD,       NUMBER_CMD, INT_CMD, ALLOW_NC |ALLOW_RING}
741#ifdef HAVE_PLURAL
742,{D(jjPlural_num_poly), NCALGEBRA_CMD,NONE,       POLY_CMD,   POLY_CMD  , NO_NC |NO_RING}
743,{D(jjPlural_num_mat),  NCALGEBRA_CMD,NONE,       POLY_CMD,   MATRIX_CMD, NO_NC |NO_RING}
744,{D(jjPlural_mat_poly), NCALGEBRA_CMD,NONE,       MATRIX_CMD, POLY_CMD  , NO_NC |NO_RING}
745,{D(jjPlural_mat_mat),  NCALGEBRA_CMD,NONE,       MATRIX_CMD, MATRIX_CMD, NO_NC |NO_RING}
746,{D(jjPlural_num_poly), NC_ALGEBRA_CMD,RING_CMD,  POLY_CMD,   POLY_CMD  , NO_NC |NO_RING}
747,{D(jjPlural_num_mat),  NC_ALGEBRA_CMD,RING_CMD,  POLY_CMD,   MATRIX_CMD, NO_NC |NO_RING}
748,{D(jjPlural_mat_poly), NC_ALGEBRA_CMD,RING_CMD,  MATRIX_CMD, POLY_CMD  , NO_NC |NO_RING}
749,{D(jjPlural_mat_mat),  NC_ALGEBRA_CMD,RING_CMD,  MATRIX_CMD, MATRIX_CMD, NO_NC |NO_RING}
750,{D(jjOPPOSE),    OPPOSE_CMD,     ANY_TYPE/*set by p*/, RING_CMD,   DEF_CMD, ALLOW_PLURAL |NO_RING}
751#endif
752,{D(jjPARSTR2),   PARSTR_CMD,     STRING_CMD,     RING_CMD,   INT_CMD, ALLOW_NC |ALLOW_RING}
753,{D(jjPRINT_FORMAT), PRINT_CMD,   STRING_CMD,     DEF_CMD,    STRING_CMD, ALLOW_NC |ALLOW_RING}
754,{D(jjPRUNE_MAP), PRUNE_MAP_CMD,  MODUL_CMD,      MODUL_CMD,  IDHDL,      ALLOW_PLURAL |ALLOW_RING}
755,{D(jjQUOT),      QUOTIENT_CMD,   IDEAL_CMD,      IDEAL_CMD,  IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}
756,{D(jjQUOT),      QUOTIENT_CMD,   MODUL_CMD,      MODUL_CMD,  IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}
757,{D(jjQUOT),      QUOTIENT_CMD,   IDEAL_CMD,      MODUL_CMD,  MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}
758,{D(jjRANDOM),    RANDOM_CMD,     INT_CMD,        INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
759,{D(jjRANK2),     RANK_CMD,       INT_CMD,        MATRIX_CMD, INT_CMD, ALLOW_NC |NO_RING}
760,{D(jjREAD2),     READ_CMD,       STRING_CMD,     LINK_CMD,   STRING_CMD, ALLOW_NC |ALLOW_RING}
761,{D(jjREDUCE_P),  REDUCE_CMD,     POLY_CMD,       POLY_CMD,   IDEAL_CMD, ALLOW_NC |ALLOW_RING}
762,{D(jjREDUCE_P),  REDUCE_CMD,     VECTOR_CMD,     VECTOR_CMD, IDEAL_CMD, ALLOW_NC |ALLOW_RING}
763,{D(jjREDUCE_P),  REDUCE_CMD,     VECTOR_CMD,     VECTOR_CMD, MODUL_CMD, ALLOW_NC |ALLOW_RING}
764,{D(jjREDUCE_ID), REDUCE_CMD,     IDEAL_CMD,      IDEAL_CMD,  IDEAL_CMD, ALLOW_NC |ALLOW_RING}
765,{D(jjREDUCE_ID), REDUCE_CMD,     MODUL_CMD,      MODUL_CMD,  IDEAL_CMD, ALLOW_NC |ALLOW_RING}
766,{D(jjREDUCE_ID), REDUCE_CMD,     MODUL_CMD,      MODUL_CMD,  MODUL_CMD, ALLOW_NC |ALLOW_RING}
767,{D(jjRES),       RES_CMD,        RESOLUTION_CMD, IDEAL_CMD,  INT_CMD, ALLOW_PLURAL |NO_RING}
768,{D(jjRES),       RES_CMD,        RESOLUTION_CMD, MODUL_CMD,  INT_CMD, ALLOW_PLURAL |NO_RING}
769,{D(jjSBA_1),     SBA_CMD,        IDEAL_CMD,      IDEAL_CMD,  INT_CMD, ALLOW_PLURAL |ALLOW_RING}
770,{D(jjSBA_1),     SBA_CMD,        MODUL_CMD,      MODUL_CMD,  INT_CMD, ALLOW_PLURAL |ALLOW_RING}
771,{D(jjSIMPL_P),   SIMPLIFY_CMD,   POLY_CMD,       POLY_CMD,   INT_CMD, ALLOW_NC |ALLOW_RING}
772,{D(jjSIMPL_P),   SIMPLIFY_CMD,   VECTOR_CMD,     VECTOR_CMD, INT_CMD, ALLOW_NC |ALLOW_RING}
773,{D(jjSIMPL_ID),  SIMPLIFY_CMD,   IDEAL_CMD,      IDEAL_CMD,  INT_CMD, ALLOW_NC |ALLOW_RING}
774,{D(jjSIMPL_ID),  SIMPLIFY_CMD,   MODUL_CMD,      MODUL_CMD,  INT_CMD, ALLOW_NC |ALLOW_RING}
775,{D(jjSQR_FREE2), SQR_FREE_CMD,   IDEAL_CMD,      POLY_CMD,   INT_CMD, NO_NC |ALLOW_RING}
776,{D(jjSTATUS2),   STATUS_CMD,     STRING_CMD,     LINK_CMD,   STRING_CMD, ALLOW_NC |ALLOW_RING}
777,{D(jjSTATUS2L),  STATUS_CMD,     INT_CMD,        LIST_CMD,   INT_CMD, ALLOW_NC |ALLOW_RING}
778//,{D(jjRES),       SRES_CMD,       LIST_CMD,       IDEAL_CMD,  INT_CMD, NO_NC |ALLOW_RING}
779//,{D(jjRES),       SRES_CMD,       LIST_CMD,       MODUL_CMD,  INT_CMD, NO_NC |ALLOW_RING}
780,{D(jjRES),       SRES_CMD,       RESOLUTION_CMD, IDEAL_CMD,  INT_CMD, NO_NC |ALLOW_RING}
781,{D(jjRES),       SRES_CMD,       RESOLUTION_CMD, MODUL_CMD,  INT_CMD, NO_NC |ALLOW_RING}
782,{D(jjSTD_1),     STD_CMD,        IDEAL_CMD,      IDEAL_CMD,  POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
783,{D(jjSTD_1),     STD_CMD,        MODUL_CMD,      MODUL_CMD,  VECTOR_CMD, ALLOW_PLURAL |ALLOW_RING}
784,{D(jjSTD_1),     STD_CMD,        IDEAL_CMD,      IDEAL_CMD,  IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}
785,{D(jjSTD_1),     STD_CMD,        MODUL_CMD,      MODUL_CMD,  MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}
786,{D(jjSTD_HILB),  STD_CMD,        IDEAL_CMD,      IDEAL_CMD,  BIGINTVEC_CMD, ALLOW_PLURAL |NO_RING}
787,{D(jjSTD_HILB),  STD_CMD,        MODUL_CMD,      MODUL_CMD,  BIGINTVEC_CMD, ALLOW_PLURAL |NO_RING}
788,{D(jjSYZ_2),     SYZYGY_CMD,     MODUL_CMD,      IDEAL_CMD,  STRING_CMD, ALLOW_PLURAL |ALLOW_RING}
789,{D(jjSYZ_2),     SYZYGY_CMD,     MODUL_CMD,      MODUL_CMD,  STRING_CMD, ALLOW_PLURAL |ALLOW_RING}
790,{D(jjTENSOR_Ma), TENSOR_CMD,     MATRIX_CMD,     MATRIX_CMD, MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}
791,{D(jjTENSOR),    TENSOR_CMD,     MODUL_CMD,      MODUL_CMD,  MODUL_CMD, ALLOW_PLURAL |ALLOW_RING|NO_CONVERSION}
792,{D(jjTENSOR),    TENSOR_CMD,     SMATRIX_CMD,    SMATRIX_CMD,SMATRIX_CMD, ALLOW_PLURAL |ALLOW_RING|NO_CONVERSION}
793,{D(jjVARSTR2),   VARSTR_CMD,     STRING_CMD,     RING_CMD,   INT_CMD, ALLOW_NC |ALLOW_RING}
794,{D(jjWAIT1ST2),  WAIT1ST_CMD,    INT_CMD,        LIST_CMD,   INT_CMD, ALLOW_NC |ALLOW_RING}
795,{D(jjWAITALL2),  WAITALL_CMD,    INT_CMD,        LIST_CMD,   INT_CMD, ALLOW_NC |ALLOW_RING}
796,{D(jjWEDGE),     WEDGE_CMD,      MATRIX_CMD,     MATRIX_CMD, INT_CMD, NO_NC |ALLOW_RING}
797,{NULL_VAL,       0,              0,              0,          0, NO_NC |NO_RING}
798};
799/*=================== operations with 3 args.: table =================*/
800const struct sValCmd3 dArith3[]=
801{
802// operations:
803// proc                cmd          res         arg1        arg2        arg3   context
804 {D(jjBRACK_S),        '[',        STRING_CMD, STRING_CMD, INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
805,{D(jjBRACK_Im),       '[',        INT_CMD,    INTMAT_CMD, INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
806,{D(jjBRACK_Bim),      '[',        BIGINT_CMD, BIGINTMAT_CMD, INT_CMD, INT_CMD, ALLOW_NC |ALLOW_RING}
807,{D(jjBRACK_Ma_I_IV),  '[',        INT_CMD,    INTMAT_CMD, INT_CMD,    INTVEC_CMD, ALLOW_NC |ALLOW_RING}
808,{D(jjBRACK_Ma_I_IV),  '[',        BIGINT_CMD, BIGINTMAT_CMD, INT_CMD,    INTVEC_CMD, ALLOW_NC |ALLOW_RING}
809,{D(jjBRACK_Ma_IV_I),  '[',        INT_CMD,    INTMAT_CMD, INTVEC_CMD, INT_CMD, ALLOW_NC |ALLOW_RING}
810,{D(jjBRACK_Ma_IV_I),  '[',        BIGINT_CMD, BIGINTMAT_CMD, INTVEC_CMD, INT_CMD, ALLOW_NC |ALLOW_RING}
811,{D(jjBRACK_Ma_IV_IV), '[',        INT_CMD,    INTMAT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_NC |ALLOW_RING}
812,{D(jjBRACK_Ma_IV_IV), '[',        BIGINT_CMD, BIGINTMAT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_NC |ALLOW_RING}
813,{D(jjBRACK_Ma),       '[',        POLY_CMD,   MATRIX_CMD, INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
814,{D(jjBRACK_SM),       '[',        POLY_CMD,   SMATRIX_CMD, INT_CMD,   INT_CMD, ALLOW_NC |ALLOW_RING}
815,{D(jjBRACK_Ma_I_IV),  '[',        POLY_CMD,   MATRIX_CMD, INT_CMD,    INTVEC_CMD, ALLOW_NC |ALLOW_RING}
816,{D(jjBRACK_Ma_IV_I),  '[',        POLY_CMD,   MATRIX_CMD, INTVEC_CMD, INT_CMD, ALLOW_NC |ALLOW_RING}
817,{D(jjBRACK_Ma_IV_IV), '[',        POLY_CMD,   MATRIX_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_NC |ALLOW_RING}
818,{D(jjRING_2),         '[',        RING_CMD,   CRING_CMD,  ANY_TYPE,   ANY_TYPE, ALLOW_NC |ALLOW_RING}
819#ifdef SINGULAR_4_2
820,{D(jjBRACK_Bim),      '[',        CNUMBER_CMD, CMATRIX_CMD, INT_CMD, INT_CMD, ALLOW_NC |ALLOW_RING}
821#endif
822,{D(jjPROC3),          '(',        ANY_TYPE,   PROC_CMD,   DEF_CMD,    DEF_CMD, ALLOW_NC |ALLOW_RING}
823,{D(atATTRIB3),        ATTRIB_CMD, NONE,       IDHDL,      STRING_CMD, DEF_CMD, ALLOW_NC |ALLOW_RING}
824,{D(jjBAREISS3),       BAREISS_CMD,LIST_CMD,   MODUL_CMD,  INT_CMD,    INT_CMD, NO_NC |ALLOW_RING|NO_ZERODIVISOR}
825#if defined(HAVE_SHIFTBBA) || defined(HAVE_PLURAL)
826,{D(jjBRACKET_REC),    BRACKET_CMD,POLY_CMD,   POLY_CMD,   POLY_CMD,   INT_CMD, ALLOW_NC | ALLOW_RING}
827#endif
828,{D(jjCOEFFS3_P),      COEFFS_CMD, MATRIX_CMD, POLY_CMD,   POLY_CMD,   MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}
829,{D(jjCOEFFS3_P),      COEFFS_CMD, MATRIX_CMD, VECTOR_CMD, POLY_CMD,   MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}
830,{D(jjCOEFFS3_Id),     COEFFS_CMD, MATRIX_CMD, IDEAL_CMD,  POLY_CMD,   MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}
831,{D(jjCOEFFS3_Id),     COEFFS_CMD, MATRIX_CMD, MODUL_CMD,  POLY_CMD,   MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}
832,{D(jjCOEFFS3_KB),     COEFFS_CMD, MATRIX_CMD, IDEAL_CMD,  IDEAL_CMD,  POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
833,{D(jjCOEFFS3_KB),     COEFFS_CMD, MATRIX_CMD, MODUL_CMD,  MODUL_CMD,  POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
834#ifdef SINGULAR_4_2
835,{D(jjCMATRIX_3),     CMATRIX_CMD, CMATRIX_CMD,INT_CMD,    INT_CMD,   CRING_CMD, ALLOW_PLURAL |ALLOW_RING}
836#endif
837,{D(jjELIMIN_HILB),    ELIMINATION_CMD,IDEAL_CMD, IDEAL_CMD, POLY_CMD, BIGINTVEC_CMD, NO_NC |NO_RING}
838,{D(jjELIMIN_HILB),    ELIMINATION_CMD,MODUL_CMD, MODUL_CMD, POLY_CMD, BIGINTVEC_CMD, NO_NC |NO_RING}
839,{D(jjELIMIN_ALG),     ELIMINATION_CMD,IDEAL_CMD, IDEAL_CMD,  POLY_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}
840,{D(jjELIMIN_ALG),     ELIMINATION_CMD,MODUL_CMD, MODUL_CMD,  POLY_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}
841,{D(jjFIND3),          FIND_CMD,   INT_CMD,    STRING_CMD, STRING_CMD, INT_CMD, ALLOW_NC |ALLOW_RING}
842,{D(jjFRES3),          FRES_CMD,   RESOLUTION_CMD, IDEAL_CMD, INT_CMD, STRING_CMD, NO_NC |NO_RING}
843,{D(jjFRES3),          FRES_CMD,   RESOLUTION_CMD, MODUL_CMD, INT_CMD, STRING_CMD, NO_NC |NO_RING}
844,{D(jjFWALK3),         FWALK_CMD,  IDEAL_CMD,  RING_CMD,   DEF_CMD,    INT_CMD, NO_NC |ALLOW_RING}
845,{D(jjHILBERT3),       HILBERT_CMD,INTVEC_CMD, IDEAL_CMD,  INT_CMD,    INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING | NO_ZERODIVISOR}
846,{D(jjHILBERT3),       HILBERT_CMD,INTVEC_CMD, MODUL_CMD,  INT_CMD,    INTVEC_CMD, ALLOW_PLURAL | ALLOW_RING | NO_ZERODIVISOR}
847,{D(jjHILBERT3Qt),     HILBERT_CMD,NONE,       IDEAL_CMD,  RING_CMD,   STRING_CMD, ALLOW_PLURAL | ALLOW_RING | NO_ZERODIVISOR}
848,{D(jjHILBERT3Qt),     HILBERT_CMD,NONE,       MODUL_CMD,  RING_CMD,   STRING_CMD, ALLOW_PLURAL | ALLOW_RING | NO_ZERODIVISOR}
849,{D(jjHOMOG_P_W),      HOMOG_CMD,  POLY_CMD,   POLY_CMD,   POLY_CMD,   INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}
850,{D(jjHOMOG_P_W),      HOMOG_CMD,  VECTOR_CMD, VECTOR_CMD, POLY_CMD,   INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}
851,{D(jjHOMOG_ID_W),     HOMOG_CMD,  IDEAL_CMD,  IDEAL_CMD,  POLY_CMD,   INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}
852,{D(jjHOMOG_ID_W),     HOMOG_CMD,  MODUL_CMD,  MODUL_CMD,  POLY_CMD,   INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}
853,{D(jjHOMOG_W_M),      HOMOG_CMD,  INT_CMD,    MODUL_CMD,  INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}
854,{D(lInsert3),         INSERT_CMD, LIST_CMD,   LIST_CMD,   DEF_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
855,{D(jjINTERSEC3S),     INTERSECT_CMD,IDEAL_CMD,IDEAL_CMD,  IDEAL_CMD,  STRING_CMD, ALLOW_PLURAL |ALLOW_RING}
856,{D(jjINTERSEC3S),     INTERSECT_CMD,MODUL_CMD,MODUL_CMD,  MODUL_CMD,  STRING_CMD, ALLOW_PLURAL |ALLOW_RING}
857,{D(jjINTERSECT3),     INTERSECT_CMD,IDEAL_CMD,IDEAL_CMD,  IDEAL_CMD,  IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}
858,{D(jjINTERSECT3),     INTERSECT_CMD,MODUL_CMD,MODUL_CMD,  MODUL_CMD,  MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}
859,{D(jjINTMAT3),        INTMAT_CMD, INTMAT_CMD, INTMAT_CMD, INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
860,{D(jjJET_P_IV),       JET_CMD,    POLY_CMD,   POLY_CMD,   INT_CMD,    INTVEC_CMD, ALLOW_PLURAL }
861,{D(jjJET_ID_IV),      JET_CMD,    IDEAL_CMD,  IDEAL_CMD,  INT_CMD,    INTVEC_CMD, ALLOW_PLURAL }
862,{D(jjJET_P_IV),       JET_CMD,    VECTOR_CMD, VECTOR_CMD, INT_CMD,    INTVEC_CMD, ALLOW_PLURAL }
863,{D(jjJET_ID_IV),      JET_CMD,    MODUL_CMD,  MODUL_CMD,  INT_CMD,    INTVEC_CMD, ALLOW_PLURAL }
864,{D(jjJET_P_P),        JET_CMD,    POLY_CMD,   POLY_CMD,   POLY_CMD,   INT_CMD, ALLOW_PLURAL }
865,{D(jjJET_P_P),        JET_CMD,    VECTOR_CMD, VECTOR_CMD, POLY_CMD,   INT_CMD, ALLOW_PLURAL }
866,{D(jjJET_ID_M),       JET_CMD,    IDEAL_CMD,  IDEAL_CMD,  MATRIX_CMD, INT_CMD, ALLOW_PLURAL }
867,{D(jjJET_ID_M),       JET_CMD,    MODUL_CMD,  MODUL_CMD,  MATRIX_CMD, INT_CMD, ALLOW_PLURAL }
868,{  jjWRONG3 ,         JET_CMD,    POLY_CMD,   POLY_CMD,   INT_CMD,    INT_CMD, ALLOW_PLURAL }
869,{D(mpKoszul),         KOSZUL_CMD, MATRIX_CMD, INT_CMD,    INT_CMD,    IDEAL_CMD, NO_NC |NO_RING}
870,{D(jjLIFT3),          LIFT_CMD,   MATRIX_CMD, IDEAL_CMD,  IDEAL_CMD,  MATRIX_CMD, ALLOW_NC |ALLOW_RING}
871,{D(jjLIFT3),          LIFT_CMD,   MATRIX_CMD, MODUL_CMD,  MODUL_CMD,  MATRIX_CMD, ALLOW_NC |ALLOW_RING}
872,{D(jjLIFTSTD_SYZ),    LIFTSTD_CMD,IDEAL_CMD,  IDEAL_CMD,  MATRIX_CMD, MODUL_CMD, ALLOW_NC |ALLOW_RING}
873,{D(jjLIFTSTD_SYZ),    LIFTSTD_CMD,MODUL_CMD,  MODUL_CMD,  MATRIX_CMD, MODUL_CMD, ALLOW_NC |ALLOW_RING}
874,{D(jjLIFTSTD_ALG),    LIFTSTD_CMD,IDEAL_CMD,  IDEAL_CMD,  MATRIX_CMD, STRING_CMD, ALLOW_NC |ALLOW_RING}
875,{D(jjLIFTSTD_ALG),    LIFTSTD_CMD,MODUL_CMD,  MODUL_CMD,  MATRIX_CMD, STRING_CMD, ALLOW_NC |ALLOW_RING}
876,{D(jjMATRIX_Id),      MATRIX_CMD, MATRIX_CMD, IDEAL_CMD,  INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
877,{D(jjMATRIX_Mo),      MATRIX_CMD, MATRIX_CMD, MODUL_CMD,  INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
878,{D(jjMATRIX_Ma),      MATRIX_CMD, MATRIX_CMD, MATRIX_CMD, INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
879,{D(jjMODULO3),        MODULO_CMD, MODUL_CMD,  IDEAL_CMD,  IDEAL_CMD,  MATRIX_CMD, ALLOW_NC |ALLOW_RING}
880,{D(jjMODULO3S),       MODULO_CMD, MODUL_CMD,  IDEAL_CMD,  IDEAL_CMD,  STRING_CMD, ALLOW_NC |ALLOW_RING}
881,{D(jjMODULO3),        MODULO_CMD, MODUL_CMD,  MODUL_CMD,  MODUL_CMD,  MATRIX_CMD, ALLOW_NC |ALLOW_RING}
882,{D(jjMODULO3S),       MODULO_CMD, MODUL_CMD,  MODUL_CMD,  MODUL_CMD,  STRING_CMD, ALLOW_NC |ALLOW_RING}
883,{D(jjMRES_MAP),       MRES_MAP_CMD,RESOLUTION_CMD,IDEAL_CMD,INT_CMD,  SMATRIX_CMD, ALLOW_PLURAL |NO_RING}
884,{D(jjMRES_MAP),       MRES_MAP_CMD,RESOLUTION_CMD,MODUL_CMD,INT_CMD,  SMATRIX_CMD, ALLOW_PLURAL |NO_RING}
885,{D(jjSMATRIX_Mo),     SMATRIX_CMD,SMATRIX_CMD,MODUL_CMD,  INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
886,{D(jjSMATRIX_Mo),     SMATRIX_CMD,SMATRIX_CMD,SMATRIX_CMD,INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
887#ifdef OLD_RES
888,{D(jjRES3),           MRES_CMD,   NONE,       IDEAL_CMD,  INT_CMD,    ANY_TYPE, ALLOW_PLURAL |NO_RING}
889,{D(jjRES3),           MRES_CMD,   NONE,       MODUL_CMD,  INT_CMD,    ANY_TYPE, ALLOW_PLURAL |NO_RING}
890#endif
891,{D(jjNEWSTRUCT3),     NEWSTRUCT_CMD, NONE,     STRING_CMD, STRING_CMD, STRING_CMD, ALLOW_NC |ALLOW_RING}
892,{D(jjPREIMAGE),       PREIMAGE_CMD, IDEAL_CMD, RING_CMD,  ANY_TYPE,   ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}
893,{D(jjRANDOM_Im),      RANDOM_CMD, INTMAT_CMD, INT_CMD,    INT_CMD,    INT_CMD, ALLOW_NC |ALLOW_RING}
894#ifdef SINGULAR_4_2
895,{D(jjRANDOM_CF),      RANDOM_CMD, CNUMBER_CMD, CNUMBER_CMD, CNUMBER_CMD, CRING_CMD, ALLOW_NC |ALLOW_RING}
896#endif
897,{D(jjREDUCE3_P),      REDUCE_CMD, POLY_CMD,   POLY_CMD,   IDEAL_CMD,  INT_CMD, ALLOW_NC |ALLOW_RING}
898,{D(jjREDUCE3_P),      REDUCE_CMD, VECTOR_CMD, VECTOR_CMD, IDEAL_CMD,  INT_CMD, ALLOW_NC |ALLOW_RING}
899,{D(jjREDUCE3_P),      REDUCE_CMD, VECTOR_CMD, VECTOR_CMD, MODUL_CMD,  INT_CMD, ALLOW_NC |ALLOW_RING}
900,{D(jjREDUCE3_ID),     REDUCE_CMD, IDEAL_CMD,  IDEAL_CMD,  IDEAL_CMD,  INT_CMD, ALLOW_NC |ALLOW_RING}
901,{D(jjREDUCE3_ID),     REDUCE_CMD, MODUL_CMD,  MODUL_CMD,  MODUL_CMD,  INT_CMD, ALLOW_NC |ALLOW_RING}
902,{D(jjREDUCE3_ID),     REDUCE_CMD, MODUL_CMD,  MODUL_CMD,  IDEAL_CMD,  INT_CMD, ALLOW_NC |ALLOW_RING}
903,{D(jjREDUCE3_CP),     REDUCE_CMD, POLY_CMD,   POLY_CMD,   POLY_CMD,   IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING}
904,{D(jjREDUCE3_CP),     REDUCE_CMD, VECTOR_CMD, VECTOR_CMD, POLY_CMD,   MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}
905,{D(jjREDUCE3_CID),    REDUCE_CMD, IDEAL_CMD,  IDEAL_CMD,  IDEAL_CMD,  MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}
906,{D(jjREDUCE3_CID),    REDUCE_CMD, MODUL_CMD,  MODUL_CMD,  MODUL_CMD,  MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}
907#ifdef OLD_RES
908,{D(jjRES3),           RES_CMD,    NONE,       IDEAL_CMD,  INT_CMD,    ANY_TYPE, ALLOW_PLURAL |NO_RING}
909,{D(jjRES3),           RES_CMD,    NONE,       MODUL_CMD,  INT_CMD,    ANY_TYPE, ALLOW_PLURAL |NO_RING}
910#endif
911,{D(jjRESULTANT),      RESULTANT_CMD, POLY_CMD,POLY_CMD,   POLY_CMD,   POLY_CMD, NO_NC |ALLOW_RING}
912,{D(jjRING3),          RING_CMD,   RING_CMD,   DEF_CMD,    DEF_CMD,    DEF_CMD, ALLOW_PLURAL |ALLOW_RING}
913#ifdef OLD_RES
914,{D(jjRES3),           SRES_CMD,   NONE,       IDEAL_CMD,  INT_CMD,    ANY_TYPE, NO_NC |ALLOW_RING}
915,{D(jjRES3),           SRES_CMD,   NONE,       MODUL_CMD,  INT_CMD,    ANY_TYPE, NO_NC |ALLOW_RING}
916#endif
917,{D(jjSBA_2),          SBA_CMD,    IDEAL_CMD,  IDEAL_CMD,  INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}
918,{D(jjSBA_2),          SBA_CMD,    MODUL_CMD,  MODUL_CMD,  INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING}
919,{D(jjSTATUS3),        STATUS_CMD, INT_CMD,    LINK_CMD,   STRING_CMD, STRING_CMD, ALLOW_NC |ALLOW_RING}
920,{D(jjSTD_HILB_W),     STD_CMD,    IDEAL_CMD,  IDEAL_CMD,  BIGINTVEC_CMD,INTVEC_CMD, ALLOW_PLURAL |NO_RING}
921,{D(jjSTD_HILB_W),     STD_CMD,    MODUL_CMD,  MODUL_CMD,  BIGINTVEC_CMD,INTVEC_CMD, ALLOW_PLURAL |NO_RING}
922,{D(jjSUBST_Bu),       SUBST_CMD,  ANY_TYPE,   DEF_CMD,    POLY_CMD,   BUCKET_CMD , ALLOW_NC |ALLOW_RING}
923,{D(jjSUBST_P),        SUBST_CMD,  POLY_CMD,   POLY_CMD,   POLY_CMD,   POLY_CMD , ALLOW_NC |ALLOW_RING}
924,{D(jjSUBST_P),        SUBST_CMD,  VECTOR_CMD, VECTOR_CMD, POLY_CMD,   POLY_CMD , ALLOW_NC |ALLOW_RING}
925,{D(jjSUBST_Id),       SUBST_CMD,  IDEAL_CMD,  IDEAL_CMD,  POLY_CMD,   POLY_CMD , ALLOW_NC |ALLOW_RING}
926,{D(jjSUBST_Id),       SUBST_CMD,  MODUL_CMD,  MODUL_CMD,  POLY_CMD,   POLY_CMD , ALLOW_NC |ALLOW_RING}
927,{D(jjSUBST_Id),       SUBST_CMD,  MATRIX_CMD, MATRIX_CMD, POLY_CMD,   POLY_CMD , ALLOW_NC |ALLOW_RING}
928,{D(jjSUBST_Id_I),     SUBST_CMD,  MATRIX_CMD, MATRIX_CMD, POLY_CMD,   INT_CMD  , ALLOW_NC |ALLOW_RING}
929,{D(jjSUBST_Id_N),     SUBST_CMD,  MATRIX_CMD, MATRIX_CMD, POLY_CMD,   NUMBER_CMD , ALLOW_NC |ALLOW_RING}
930,{D(nuLagSolve),       LAGSOLVE_CMD,LIST_CMD,  POLY_CMD,   INT_CMD,    INT_CMD  , NO_NC |NO_RING}
931,{D(nuVanderSys),      VANDER_CMD, POLY_CMD,   IDEAL_CMD,  IDEAL_CMD,  INT_CMD  , NO_NC |NO_RING}
932,{NULL_VAL,            0,          0,          0,          0,          0        , NO_NC |NO_RING}
933};
934/*=================== operations with many arg.: table =================*/
935/* number_of_args:  -1: any, -2: any >0, 1: 1, 2: 2, .. */
936const struct sValCmdM dArithM[]=
937{
938// operations:
939// proc            cmd               res        number_of_args   context
940 {D(jjKLAMMER_PL),  '(',           ANY_TYPE,           -2      , ALLOW_NC |ALLOW_RING}
941,{D(jjRING_PL),   '[',             RING_CMD,           -2      , ALLOW_NC |ALLOW_RING}
942,{D(jjCALL1ARG),  BIGINTVEC_CMD,   BIGINTVEC_CMD,       1       , ALLOW_NC |ALLOW_RING}
943,{D(jjBIGINTVEC_PL), BIGINTVEC_CMD,BIGINTVEC_CMD,      -2      , ALLOW_NC |ALLOW_RING}
944,{D(jjBREAK0),    BREAKPOINT_CMD,  NONE,               0       , ALLOW_NC |ALLOW_RING}
945,{D(jjBREAK1),    BREAKPOINT_CMD,  NONE,               -2      , ALLOW_NC |ALLOW_RING}
946,{D(iiBranchTo),  BRANCHTO_CMD,    NONE,               -2      , ALLOW_NC |ALLOW_RING}
947#ifdef SINGULAR_4_2
948,{D(jjCALL3ARG),  CMATRIX_CMD,     CMATRIX_CMD,        3       , ALLOW_NC |ALLOW_RING}
949,{D(jjCALL2ARG),  CNUMBER_CMD,     CNUMBER_CMD,        2       , ALLOW_NC |ALLOW_RING}
950#endif
951,{D(jjCALL2ARG),  COEF_CMD,        MATRIX_CMD,         2       , ALLOW_PLURAL |ALLOW_RING}
952,{D(jjCOEF_M),    COEF_CMD,        NONE,               4       , ALLOW_PLURAL |ALLOW_RING}
953,{D(jjCALL2ARG),  DIVISION_CMD,    LIST_CMD,            2      , ALLOW_PLURAL |ALLOW_RING}
954,{D(jjDIVISION4), DIVISION_CMD,    LIST_CMD,            3      , NO_NC |NO_RING}
955,{D(jjDIVISION4), DIVISION_CMD,    LIST_CMD,            4      , NO_NC |NO_RING}
956,{D(jjDBPRINT),   DBPRINT_CMD,     NONE,               -2      , ALLOW_NC |ALLOW_RING}
957//,{D(jjEXPORTTO_M),  EXPORTTO_CMD,    NONE,             -2      , ALLOW_NC |ALLOW_RING}
958,{D(jjCALL2ARG),  FETCH_CMD,       ANY_TYPE/*or set by p*/,2   , ALLOW_NC |ALLOW_RING}
959,{D(jjFETCH_M),   FETCH_CMD,       ANY_TYPE/*or set by p*/,3   , ALLOW_PLURAL |ALLOW_RING}
960,{D(jjFETCH_M),   FETCH_CMD,       ANY_TYPE/*or set by p*/,4   , ALLOW_PLURAL |ALLOW_RING}
961,{D(jjCALL1ARG),  HILBERT_CMD,     ANY_TYPE/*or set by p*/,1   , ALLOW_NC |ALLOW_RING}
962,{D(jjCALL2ARG),  HILBERT_CMD,     ANY_TYPE/*or set by p*/,2   , ALLOW_NC |ALLOW_RING}
963,{D(jjCALL3ARG),  HILBERT_CMD,     ANY_TYPE/*or set by p*/,3   , ALLOW_NC |ALLOW_RING}
964,{D(jjCALL1ARG),  IDEAL_CMD,       IDEAL_CMD,          1       , ALLOW_NC |ALLOW_RING}
965,{D(jjIDEAL_PL),  IDEAL_CMD,       IDEAL_CMD,          -1      , ALLOW_NC |ALLOW_RING}
966,{D(jjCALL2ARG),  INTERSECT_CMD,   IDEAL_CMD,          2       , ALLOW_PLURAL |ALLOW_RING}
967,{D(jjCALL3ARG),  INTERSECT_CMD,   IDEAL_CMD,          3       , ALLOW_PLURAL |ALLOW_RING}
968,{D(jjINTERSECT_PL),INTERSECT_CMD, IDEAL_CMD,          -2      , ALLOW_PLURAL |ALLOW_RING}
969,{D(jjCALL1ARG),  INTVEC_CMD,      INTVEC_CMD,         1       , ALLOW_NC |ALLOW_RING}
970,{D(jjINTVEC_PL), INTVEC_CMD,      INTVEC_CMD,         -2      , ALLOW_NC |ALLOW_RING}
971,{D(jjCALL2ARG),  JET_CMD,         POLY_CMD,/*or set by p*/ 2  , ALLOW_PLURAL |ALLOW_RING}
972,{D(jjCALL3ARG),  JET_CMD,         POLY_CMD,/*or set by p*/ 3  , ALLOW_PLURAL |ALLOW_RING}
973,{D(jjJET4),      JET_CMD,         POLY_CMD,/*or set by p*/ 4  , ALLOW_PLURAL |ALLOW_RING}
974,{D(jjCALL1ARG),  LIB_CMD,         NONE,                1  , ALLOW_NC |ALLOW_RING}
975,{D(jjCALL2ARG),  LIFT_CMD,        MATRIX_CMD,          2  , ALLOW_NC |ALLOW_RING}
976,{D(jjCALL3ARG),  LIFT_CMD,        MATRIX_CMD,          3  , ALLOW_NC |ALLOW_RING}
977,{D(jjLIFT_4),    LIFT_CMD,        MATRIX_CMD,          4  , ALLOW_PLURAL |ALLOW_RING}
978,{D(jjCALL2ARG),  LIFTSTD_CMD,     IDEAL_CMD,/*or MODUL*/2  , ALLOW_NC |ALLOW_RING}
979,{D(jjCALL3ARG),  LIFTSTD_CMD,     IDEAL_CMD,/*or MODUL*/3  , ALLOW_NC |ALLOW_RING}
980,{D(jjLIFTSTD_M), LIFTSTD_CMD,     IDEAL_CMD,/*or MODUL*/4  , ALLOW_NC |ALLOW_RING}
981,{D(jjLIFTSTD_M), LIFTSTD_CMD,     IDEAL_CMD,/*or MODUL*/5  , ALLOW_NC |ALLOW_RING}
982,{D(jjLIST_PL),   LIST_CMD,        LIST_CMD,           -1      , ALLOW_NC |ALLOW_RING}
983,{D(jjLU_INVERSE),LUI_CMD,         LIST_CMD,           -2      , NO_NC |NO_RING}
984,{D(jjLU_SOLVE),  LUS_CMD,         LIST_CMD,           -2      , NO_NC |NO_RING}
985,{  jjWRONG ,     MINOR_CMD,       NONE,               1       , ALLOW_PLURAL |ALLOW_RING}
986,{D(jjMINOR_M),   MINOR_CMD,       IDEAL_CMD,          -2      , ALLOW_PLURAL |ALLOW_RING}
987,{D(jjCALL1ARG),  MODUL_CMD,       MODUL_CMD,          1       , ALLOW_NC |ALLOW_RING}
988,{D(jjIDEAL_PL),  MODUL_CMD,       MODUL_CMD,          -1      , ALLOW_NC |ALLOW_RING}
989,{D(jjCALL2ARG),  MODULO_CMD,      MODUL_CMD,           2      , ALLOW_NC |ALLOW_RING}
990,{D(jjCALL3ARG),  MODULO_CMD,      MODUL_CMD,           3      , ALLOW_NC |ALLOW_RING}
991,{D(jjMODULO4),   MODULO_CMD,      MODUL_CMD,           4      , ALLOW_NC |ALLOW_RING}
992,{D(jjCALL1ARG),  NAMES_CMD,       LIST_CMD,            1      , ALLOW_NC |ALLOW_RING}
993,{D(jjNAMES0),    NAMES_CMD,       LIST_CMD,            0      , ALLOW_NC |ALLOW_RING}
994,{D(jjCALL2ARG),  CNUMBER_CMD,     CNUMBER_CMD,         2      , ALLOW_NC |ALLOW_RING}
995,{D(jjOPTION_PL), OPTION_CMD,      STRING_CMD/*or set by p*/,-1, ALLOW_NC |ALLOW_RING}
996,{D(jjCALL2ARG),  REDUCE_CMD,      IDEAL_CMD/*or set by p*/,  2, ALLOW_NC |ALLOW_RING}
997,{D(jjCALL3ARG),  REDUCE_CMD,      IDEAL_CMD/*or set by p*/,  3, ALLOW_NC |ALLOW_RING}
998,{D(jjREDUCE4),   REDUCE_CMD,      IDEAL_CMD/*or set by p*/,  4, ALLOW_PLURAL |ALLOW_RING}
999,{D(jjREDUCE5),   REDUCE_CMD,      IDEAL_CMD/*or set by p*/,  5, ALLOW_PLURAL |ALLOW_RING}
1000,{D(jjCALL1ARG),  RESERVEDNAME_CMD, INT_CMD,            1      , ALLOW_NC |ALLOW_RING}
1001,{D(jjRESERVED0), RESERVEDNAME_CMD, NONE,               0      , ALLOW_NC |ALLOW_RING}
1002//,{D(jjCALL1ARG),  RESERVEDNAMELIST_CMD, LIST_CMD,            1      , ALLOW_NC |ALLOW_RING}
1003,{D(jjRESERVEDLIST0), RESERVEDNAMELIST_CMD, LIST_CMD,               0      , ALLOW_NC |ALLOW_RING}
1004,{D(jjSTRING_PL), STRING_CMD,      STRING_CMD,         -1      , ALLOW_NC |ALLOW_RING}
1005,{D(jjCALL3ARG),  SUBST_CMD,       NONE/*set by p*/,   3       , ALLOW_NC |ALLOW_RING}
1006,{D(jjSUBST_M),   SUBST_CMD,       NONE/*set by p*/,   -2      , ALLOW_NC |ALLOW_RING}
1007,{D(jjSYSTEM),    SYSTEM_CMD,      NONE/*or set by p*/,-2      , ALLOW_NC |ALLOW_RING}
1008,{D(jjTEST),      TEST_CMD,        NONE,               -2      , ALLOW_NC |ALLOW_RING}
1009,{D(iiWRITE),     WRITE_CMD,       NONE,               -2      , ALLOW_NC |ALLOW_RING}
1010,{D(jjCALL2ARG),  STATUS_CMD,      STRING_CMD,          2      , ALLOW_NC |ALLOW_RING}
1011,{D(jjCALL3ARG),  STATUS_CMD,      INT_CMD,             3      , ALLOW_NC |ALLOW_RING}
1012,{D(jjSTATUS_M),  STATUS_CMD,      INT_CMD,             4      , ALLOW_NC |ALLOW_RING}
1013,{D(loSimplex),   SIMPLEX_CMD,     LIST_CMD,            6      , NO_NC |NO_RING}
1014,{D(nuUResSolve), URSOLVE_CMD,     LIST_CMD,            4      , NO_NC |NO_RING}
1015,{D(jjCALL1ARG),  STD_CMD,         IDEAL_CMD/* or set by p*/,1 , ALLOW_NC |ALLOW_RING}
1016,{D(jjCALL2ARG),  STD_CMD,         IDEAL_CMD,           2      , ALLOW_PLURAL |ALLOW_RING}
1017,{D(jjCALL3ARG),  STD_CMD,         IDEAL_CMD,           3      , NO_NC |ALLOW_RING}
1018,{D(jjSTD_HILB_WP), STD_CMD,       IDEAL_CMD,           4      , NO_NC |NO_RING}
1019,{D(jjQRDS),      QRDS_CMD,        LIST_CMD,            4      , ALLOW_PLURAL |ALLOW_RING}
1020,{D(jjFactModD_M),FMD_CMD,         LIST_CMD,           -2      , NO_NC |NO_RING}
1021,{NULL_VAL,       0,               0,                   0      , NO_NC |NO_RING}
1022};
1023#ifdef GENTABLE
1024// this table MUST be order alphabetically by its first entry:
1025// cannot be declared const because it will be sorted by qsort
1026VAR cmdnames cmds[] =
1027// alias: 0: real name, 1: this is an alias, 2: this is an outdated alias
1028{  // name-string alias tokval          toktype
1029  { "$INVALID$",   0, -1,                 0},
1030  { "ASSUME",      0, ASSUME_CMD,         ASSUME_CMD},
1031  { "LIB",         0, LIB_CMD ,           SYSVAR},
1032  { "alias",       0, ALIAS_CMD ,         PARAMETER},
1033  { "align",       0, ALIGN_CMD ,         CMD_2},
1034  { "and",         0, '&' ,               LOGIC_OP},
1035  { "apply",       0, APPLY,              APPLY},
1036  { "attrib",      0, ATTRIB_CMD ,        CMD_123},
1037  { "bareiss",     0, BAREISS_CMD ,       CMD_13},
1038  { "betti",       0, BETTI_CMD ,         CMD_12},
1039  { "bigint",      0, BIGINT_CMD ,        ROOT_DECL},
1040  { "bigintmat",   0, BIGINTMAT_CMD ,     BIGINTMAT_CMD},
1041  { "bigintvec",   0, BIGINTVEC_CMD ,     ROOT_DECL_LIST},
1042  { "branchTo",    0, BRANCHTO_CMD ,      CMD_M},
1043  #if defined(HAVE_SHIFTBBA) || defined(HAVE_PLURAL)
1044  { "bracket",     0, BRACKET_CMD ,       CMD_23},
1045  #endif
1046  { "break",       0, BREAK_CMD ,         BREAK_CMD},
1047  { "breakpoint",  0, BREAKPOINT_CMD ,    CMD_M},
1048  { "char",        0, CHARACTERISTIC_CMD ,CMD_1},
1049  { "char_series", 0, CHAR_SERIES_CMD ,   CMD_1},
1050  { "charstr",     0, CHARSTR_CMD ,       CMD_1},
1051  { "chinrem",     0, CHINREM_CMD ,       CMD_2},
1052  { "cleardenom",  0, CONTENT_CMD ,       CMD_1},
1053  { "close",       0, CLOSE_CMD ,         CMD_1},
1054#ifdef SINGULAR_4_2
1055  { "Matrix",     0, CMATRIX_CMD ,       ROOT_DECL_LIST},
1056  { "Number",     0, CNUMBER_CMD ,       ROOT_DECL_LIST},
1057  { "parent",     0, PARENT_CMD ,        CMD_1},
1058  { "Poly",       0, CPOLY_CMD ,         ROOT_DECL_LIST},
1059#endif
1060  { "coef",        0, COEF_CMD ,          CMD_M},
1061  { "coeffs",      0, COEFFS_CMD ,        CMD_123},
1062  { "continue",    0, CONTINUE_CMD ,      CONTINUE_CMD},
1063  { "contract",    0, CONTRACT_CMD ,      CMD_2},
1064  { "convhull",    0, NEWTONPOLY_CMD,     CMD_1},
1065  { "cring",       0, CRING_CMD,          ROOT_DECL},
1066  { "dbprint",     0, DBPRINT_CMD ,       CMD_M},
1067  { "def",         0, DEF_CMD ,           ROOT_DECL},
1068  { "defined",     0, DEFINED_CMD ,       CMD_1},
1069  { "deg",         0, DEG_CMD ,           CMD_12},
1070  { "degree",      0, DEGREE_CMD ,        CMD_1},
1071  { "delete",      0, DELETE_CMD ,        CMD_2},
1072  { "denominator", 0, DENOMINATOR_CMD ,   CMD_1},
1073  { "det",         0, DET_CMD ,           CMD_12},
1074  { "diff",        0, DIFF_CMD ,          CMD_2},
1075  { "dim",         0, DIM_CMD ,           CMD_12},
1076  { "div",         0, INTDIV_CMD ,        MULDIV_OP},
1077  { "division",    0, DIVISION_CMD ,      CMD_M},
1078  { "dump",        0, DUMP_CMD,           CMD_1},
1079  { "extgcd",      0, EXTGCD_CMD ,        CMD_2},
1080  { "ERROR",       0, ERROR_CMD ,         CMD_1},
1081  { "eliminate",   0, ELIMINATION_CMD,    CMD_23},
1082  { "else",        0, ELSE_CMD ,          ELSE_CMD},
1083  #ifdef HAVE_PLURAL
1084  { "envelope",    0, ENVELOPE_CMD ,      CMD_1},
1085  #endif
1086  { "eval",        0, EVAL ,              EVAL},
1087  { "example",     0, EXAMPLE_CMD ,       EXAMPLE_CMD},
1088  { "execute",     0, EXECUTE_CMD ,       CMD_1},
1089  { "export",      0, EXPORT_CMD ,        EXPORT_CMD},
1090  { "exportto",    0, EXPORTTO_CMD ,      CMD_2},
1091  { "facstd",      0, FACSTD_CMD ,        CMD_12},
1092  { "factmodd",    0, FMD_CMD ,           CMD_M},
1093  { "factorize",   0, FAC_CMD ,           CMD_12},
1094  { "farey",       0, FAREY_CMD ,         CMD_2},
1095  { "fetch",       0, FETCH_CMD ,         CMD_M},
1096  { "fglm",        0, FGLM_CMD ,          CMD_2},
1097  { "fglmquot",    0, FGLMQUOT_CMD,       CMD_2},
1098  { "find",        0, FIND_CMD ,          CMD_23},
1099  { "finduni",     0, FINDUNI_CMD,        CMD_1},
1100  { "forif",       0, IF_CMD ,            IF_CMD},
1101  { "freemodule",  0, FREEMODULE_CMD ,    CMD_1},
1102  { "fres",        0, FRES_CMD ,          CMD_23},
1103  { "frwalk",      0, FWALK_CMD ,         CMD_23},
1104  { "gen",         0, E_CMD ,             CMD_1},
1105  { "getdump",     0, GETDUMP_CMD,        CMD_1},
1106  { "gcd",         0, GCD_CMD ,           CMD_2},
1107  { "GCD",         2, GCD_CMD ,           CMD_2},
1108  { "hilb",        0, HILBERT_CMD ,       CMD_M},
1109  { "highcorner",  0, HIGHCORNER_CMD,     CMD_1},
1110  { "homog",       0, HOMOG_CMD ,         CMD_123},
1111  { "hres",        0, HRES_CMD ,          CMD_2},
1112  { "ideal",       0, IDEAL_CMD ,         RING_DECL_LIST},
1113  { "if",          0, IF_CMD ,            IF_CMD},
1114  { "imap",        0, IMAP_CMD ,          CMD_2},
1115  { "impart",      0, IMPART_CMD ,        CMD_1},
1116  { "importfrom",  0, IMPORTFROM_CMD ,    CMD_2},
1117  { "indepSet",    0, INDEPSET_CMD ,      CMD_12},
1118  { "insert",      0, INSERT_CMD ,        CMD_23},
1119  { "int",         0, INT_CMD ,           ROOT_DECL},
1120  { "interpolation",0,INTERPOLATE_CMD ,   CMD_2},
1121  { "interred",    0, INTERRED_CMD ,      CMD_1},
1122  { "intersect",   0, INTERSECT_CMD ,     CMD_M},
1123  { "intmat",      0, INTMAT_CMD ,        INTMAT_CMD},
1124  { "intvec",      0, INTVEC_CMD ,        ROOT_DECL_LIST},
1125  { "jacob",       0, JACOB_CMD ,         CMD_1},
1126  { "janet",       0, JANET_CMD ,         CMD_12},
1127  { "jet",         0, JET_CMD ,           CMD_M},
1128  { "kbase",       0, KBASE_CMD ,         CMD_12},
1129  { "keepring",    0, KEEPRING_CMD ,      KEEPRING_CMD},
1130  { "kernel",      0, KERNEL_CMD ,        CMD_12},
1131  { "kill",        0, KILL_CMD ,          KILL_CMD},
1132  { "killattrib",  0, KILLATTR_CMD ,      CMD_12},
1133  { "koszul",      0, KOSZUL_CMD ,        CMD_23},
1134  { "kres",        0, KRES_CMD ,          CMD_2},
1135  { "laguerre",    0, LAGSOLVE_CMD,       CMD_13},
1136  { "lead",        0, LEAD_CMD ,          CMD_1},
1137  { "leadcoef",    0, LEADCOEF_CMD ,      CMD_1},
1138  { "leadexp",     0, LEADEXP_CMD ,       CMD_1},
1139  { "leadmonom",   0, LEADMONOM_CMD ,     CMD_1},
1140  { "lift",        0, LIFT_CMD ,          CMD_M},
1141  { "liftstd",     0, LIFTSTD_CMD ,       CMD_M},
1142  { "link",        0, LINK_CMD ,          ROOT_DECL},
1143  { "listvar",     0, LISTVAR_CMD ,       LISTVAR_CMD},
1144  { "list",        0, LIST_CMD ,          ROOT_DECL_LIST},
1145  { "load",        0, LOAD_CMD ,          CMD_12},
1146  { "lres",        0, LRES_CMD ,          CMD_2},
1147  { "ludecomp",    0, LU_CMD ,            CMD_1},
1148  { "luinverse",   0, LUI_CMD ,           CMD_M},
1149  { "lusolve",     0, LUS_CMD ,           CMD_M},
1150  { "map",         0, MAP_CMD ,           RING_DECL},
1151  { "matrix",      0, MATRIX_CMD ,        MATRIX_CMD},
1152  { "maxideal",    0, MAXID_CMD ,         CMD_1},
1153  { "memory",      0, MEMORY_CMD ,        CMD_1},
1154  { "minbase",     0, MINBASE_CMD ,       CMD_1},
1155  { "minor",       0, MINOR_CMD ,         CMD_M},
1156  { "minres",      0, MINRES_CMD ,        CMD_1},
1157  { "mod",         0, '%' ,               MULDIV_OP},
1158  { "module",      0, MODUL_CMD ,         RING_DECL_LIST},
1159  { "modulo",      0, MODULO_CMD ,        CMD_M},
1160  { "monitor",     0, MONITOR_CMD ,       CMD_12},
1161  { "monomial",    0, MONOM_CMD ,         CMD_1},
1162  { "mpresmat",    0, MPRES_CMD,          CMD_2},
1163  { "mult",        0, MULTIPLICITY_CMD ,  CMD_1},
1164  #ifdef OLD_RES
1165  { "mres",        0, MRES_CMD ,          CMD_23},
1166  #else
1167  { "mres",        0, MRES_CMD ,          CMD_2},
1168  #endif
1169  { "mres_map",    0, MRES_MAP_CMD ,      CMD_3},
1170  { "mstd",        0, MSTD_CMD ,          CMD_1},
1171  { "nameof",      0, NAMEOF_CMD ,        CMD_1},
1172  { "names",       0, NAMES_CMD ,         CMD_M},
1173  { "newstruct",   0, NEWSTRUCT_CMD ,     CMD_23},
1174  #ifdef HAVE_PLURAL
1175  { "ncalgebra",   2, NCALGEBRA_CMD ,     CMD_2},
1176  { "nc_algebra",  0, NC_ALGEBRA_CMD ,    CMD_2},
1177  #endif
1178  { "ncols",       0, COLS_CMD ,          CMD_1},
1179  { "not",         0, NOT ,               NOT},
1180  { "npars",       0, NPARS_CMD ,         CMD_1},
1181  #ifdef OLD_RES
1182  { "nres",        0, RES_CMD ,           CMD_23},
1183  #else
1184  { "nres",        0, RES_CMD ,           CMD_2},
1185  #endif
1186  { "nrows",       0, ROWS_CMD ,          CMD_1},
1187  { "number",      0, NUMBER_CMD ,        RING_DECL},
1188  { "numerator",   0, NUMERATOR_CMD ,     CMD_1},
1189  { "nvars",       0, NVARS_CMD ,         CMD_1},
1190  { "open",        0, OPEN_CMD ,          CMD_1},
1191  #ifdef HAVE_PLURAL
1192  { "oppose",      0, OPPOSE_CMD ,        CMD_2},
1193  { "opposite",    0, OPPOSITE_CMD ,      CMD_1},
1194  #endif
1195  { "option",      0, OPTION_CMD ,        CMD_M},
1196  { "or",          0, '|' ,               LOGIC_OP},
1197  { "ord",         0, ORD_CMD ,           CMD_1},
1198  { "ordstr",      0, ORDSTR_CMD ,        CMD_1},
1199  { "package",     0, PACKAGE_CMD ,       ROOT_DECL},
1200  { "par",         0, PAR_CMD ,           CMD_1},
1201  { "parameter",   0, PARAMETER ,         PARAMETER},
1202  { "pardeg",      0, PARDEG_CMD ,        CMD_1},
1203  { "parstr",      0, PARSTR_CMD ,        CMD_12},
1204  { "poly",        0, POLY_CMD ,          RING_DECL},
1205  { "polyBucket",  0, BUCKET_CMD ,        RING_DECL},
1206  { "preimage",    0, PREIMAGE_CMD ,      CMD_13},
1207  { "prime",       0, PRIME_CMD ,         CMD_1},
1208  { "primefactors",0, PFAC_CMD ,          CMD_12},
1209  { "print",       0, PRINT_CMD ,         CMD_12},
1210  { "prune",       0, PRUNE_CMD ,         CMD_1},
1211  { "prune_map",   0, PRUNE_MAP_CMD ,     CMD_2},
1212  { "proc",        0, PROC_CMD ,          PROC_CMD},
1213  { "qhweight",    0, QHWEIGHT_CMD ,      CMD_1},
1214  { "qrds",        0, QRDS_CMD ,          CMD_M},
1215  { "qring",       0, QRING_CMD ,         ROOT_DECL},
1216  { "quote",       0, QUOTE ,             QUOTE},
1217  { "quotient",    0, QUOTIENT_CMD ,      CMD_2},
1218  { "random",      0, RANDOM_CMD ,        CMD_23},
1219  { "rank",        0, RANK_CMD ,          CMD_12},
1220  { "read",        0, READ_CMD ,          CMD_12},
1221  { "reduce",      0, REDUCE_CMD ,        CMD_M},
1222  { "regularity",  0, REGULARITY_CMD ,    CMD_1},
1223  { "repart",      0, REPART_CMD ,        CMD_1},
1224  { "reservedName",0, RESERVEDNAME_CMD ,  CMD_M},
1225  { "reservedNameList",0, RESERVEDNAMELIST_CMD ,  CMD_M},
1226  { "resolution",  0, RESOLUTION_CMD ,    RING_DECL},
1227  { "resultant",   0, RESULTANT_CMD,      CMD_3},
1228  { "restart",     0, RESTART_CMD,        CMD_1},
1229  { "return",      0, RETURN ,            RETURN},
1230  { "RETURN",      0, END_GRAMMAR ,       RETURN},
1231#if defined(HAVE_SHIFTBBA) || defined(HAVE_PLURAL)
1232  { "rightstd",    0, RIGHTSTD_CMD ,      CMD_1},
1233#endif /* HAVE_PLURAL */
1234  { "ring",        0, RING_CMD ,          RING_CMD},
1235  { "ringlist",    0, RINGLIST_CMD ,      CMD_1},
1236  { "ring_list",   0, RING_LIST_CMD ,     CMD_1},
1237  { "rvar",        0, IS_RINGVAR ,        CMD_1},
1238  { "sba",         0, SBA_CMD ,           CMD_123},
1239  { "setring",     0, SETRING_CMD ,       SETRING_CMD},
1240  { "simplex",     0, SIMPLEX_CMD,        CMD_M},
1241  { "simplify",    0, SIMPLIFY_CMD ,      CMD_2},
1242  { "size",        0, COUNT_CMD ,         CMD_1},
1243  { "slimgb",      0, SLIM_GB_CMD ,       CMD_1},
1244  { "smatrix",     0, SMATRIX_CMD ,       SMATRIX_CMD},
1245  { "sortvec",     0, SORTVEC_CMD ,       CMD_1},
1246  { "sqrfree",     0, SQR_FREE_CMD ,      CMD_12},
1247#ifdef OLD_RES
1248  { "sres",        0, SRES_CMD ,          CMD_23},
1249#else /* OLD_RES */
1250  { "sres",        0, SRES_CMD ,          CMD_2},
1251#endif /* OLD_RES */
1252  { "status",      0, STATUS_CMD,         CMD_M},
1253  { "std",         0, STD_CMD ,           CMD_M},
1254  { "string",      0, STRING_CMD ,        ROOT_DECL_LIST},
1255  { "subst",       0, SUBST_CMD ,         CMD_M},
1256  { "system",      0, SYSTEM_CMD,         CMD_M},
1257  { "syz",         0, SYZYGY_CMD ,        CMD_12},
1258  { "tensor",      0, TENSOR_CMD ,        CMD_2},
1259  { "test",        0, TEST_CMD ,          CMD_M},
1260  { "trace",       0, TRACE_CMD ,         CMD_1},
1261  { "transpose",   0, TRANSPOSE_CMD ,     CMD_1},
1262#if defined(HAVE_PLURAL) || defined(HAVE_SHIFTBBA)
1263  { "twostd",      0, TWOSTD_CMD ,        CMD_1},
1264#endif /* HAVE_PLURAL */
1265  { "type",        0, TYPE_CMD ,          TYPE_CMD},
1266  { "typeof",      0, TYPEOF_CMD ,        CMD_1},
1267  { "univariate",  0, UNIVARIATE_CMD,     CMD_1},
1268  { "uressolve",   0, URSOLVE_CMD,        CMD_M},
1269  { "vandermonde", 0, VANDER_CMD,         CMD_3},
1270  { "var",         0, VAR_CMD ,           CMD_1},
1271  { "variables",   0, VARIABLES_CMD,      CMD_1},
1272  { "varstr",      0, VARSTR_CMD ,        CMD_12},
1273  { "vdim",        0, VDIM_CMD ,          CMD_1},
1274  { "vector",      0, VECTOR_CMD ,        RING_DECL},
1275  { "waitall",     0, WAITALL_CMD ,       CMD_12},
1276  { "waitfirst",   0, WAIT1ST_CMD ,       CMD_12},
1277  { "wedge",       0, WEDGE_CMD ,         CMD_2},
1278  { "weight",      0, WEIGHT_CMD ,        CMD_1},
1279  { "whileif",     0, IF_CMD ,            IF_CMD},
1280  { "write",       0, WRITE_CMD ,         CMD_M},
1281/* delete for next version:*/
1282  { "IN",          1, LEAD_CMD ,          CMD_1},
1283  { "NF",          1, REDUCE_CMD ,        CMD_M},
1284  { "multiplicity",1, MULTIPLICITY_CMD ,  CMD_1},
1285  { "verbose",     2, OPTION_CMD ,        CMD_M},
1286//  { "rank",        1, ROWS_CMD ,          CMD_1},
1287//  { "Current",     0, -1 ,                SYSVAR},
1288//  { "Top",         0, -1 ,                SYSVAR},
1289//  { "Up",          0, -1 ,                SYSVAR},
1290
1291/* set sys vars*/
1292  { "degBound",    0, VMAXDEG ,           SYSVAR},
1293  { "echo",        0, VECHO ,             SYSVAR},
1294  { "minpoly",     0, VMINPOLY ,          SYSVAR},
1295  { "multBound",   0, VMAXMULT ,          SYSVAR},
1296  { "noether",     0, VNOETHER ,          SYSVAR},
1297  { "pagewidth",   0, VCOLMAX ,           SYSVAR},
1298  { "printlevel",  0, VPRINTLEVEL ,       SYSVAR},
1299  { "short",       0, VSHORTOUT ,         SYSVAR},
1300  { "timer",       0, VTIMER ,            SYSVAR},
1301  { "rtimer",      0, VRTIMER,            SYSVAR},
1302  { "TRACE",       0, TRACE ,             SYSVAR},
1303  { "voice",       0, VOICE ,             SYSVAR},
1304
1305/* other reserved words:scanner.l */
1306  { "pause",       2, -1 ,             0},
1307  { "while",       0, -1 ,             0},
1308  { "for",         0, -1 ,             0},
1309  { "help",        0, -1 ,             0},
1310  { "newline",     0, -1 ,             0},
1311  { "exit",        0, -1 ,             0},
1312  { "quit",        0, -1 ,             0},
1313/* end of list marker */
1314  { NULL, 0, 0, 0}
1315};
1316#endif /* GENTABLE */
1317#endif
1318
1319#ifdef IPCONV
1320const struct sConvertTypes dConvertTypes[] =
1321{
1322//   input type       output type     convert procedure(destr.)/(non-destr.)
1323//  int -> bigint
1324   { INT_CMD,         BIGINT_CMD,     D(iiI2BI) , NULL_VAL },
1325   { INT_CMD,         BIGINTVEC_CMD,  D(iiI2BIV) , NULL_VAL },
1326//  int -> number
1327   { INT_CMD,         NUMBER_CMD,     D(iiI2N) , NULL_VAL },
1328   { BIGINT_CMD,      NUMBER_CMD,     D(iiBI2N) , NULL_VAL },
1329//  int -> poly
1330   { INT_CMD,         POLY_CMD,       D(iiI2P) , NULL_VAL },
1331   { BIGINT_CMD,      POLY_CMD,       D(iiBI2P) , NULL_VAL },
1332   { BUCKET_CMD,      POLY_CMD,       NULL_VAL,   D(iiBu2P) },
1333//  int -> vector
1334   { INT_CMD,         VECTOR_CMD,     D(iiI2V) , NULL_VAL },
1335   { BIGINT_CMD,      VECTOR_CMD,     D(iiBI2V) , NULL_VAL },
1336//  int -> ideal
1337   { INT_CMD,         IDEAL_CMD,      D(iiI2Id) , NULL_VAL },
1338   { BIGINT_CMD,      IDEAL_CMD,      D(iiBI2Id) , NULL_VAL },
1339//  int -> matrix
1340   { INT_CMD,         MATRIX_CMD,     D(iiI2Id) , NULL_VAL },
1341   { BIGINT_CMD,      MATRIX_CMD,     D(iiBI2Id) , NULL_VAL },
1342//  int -> intvec
1343   { INT_CMD,         INTVEC_CMD,     D(iiI2Iv) , NULL_VAL },
1344//  intvec -> intmat
1345   { INTVEC_CMD,      INTMAT_CMD,     D(iiDummy), NULL_VAL },
1346   { INTVEC_CMD,      BIGINTVEC_CMD,  D(iiIV2BIV), NULL_VAL },
1347//  intvec -> matrix
1348   { INTVEC_CMD,      MATRIX_CMD,     D(iiIm2Ma) , NULL_VAL },
1349//  intmat -> bigintmat
1350   { INTMAT_CMD,      BIGINTMAT_CMD,  D(iiIm2Bim) , NULL_VAL },
1351//  intmat -> matrix
1352   { INTMAT_CMD,      MATRIX_CMD,     D(iiIm2Ma) , NULL_VAL },
1353//  bigintvec -> bigintmat
1354   { BIGINTVEC_CMD,   BIGINTMAT_CMD,  D(iiDummy) , NULL_VAL },
1355//  number -> poly
1356   { NUMBER_CMD,      POLY_CMD,       D(iiN2P)  , NULL_VAL },
1357//  number -> matrix
1358   { NUMBER_CMD,      MATRIX_CMD,     D(iiN2Ma)  , NULL_VAL },
1359//  number -> ideal
1360//  number -> vector
1361//  number -> module
1362//  poly -> number
1363//  poly -> ideal
1364   { POLY_CMD,        IDEAL_CMD,      D(iiP2Id) , NULL_VAL },
1365//  poly -> vector
1366   { POLY_CMD,        VECTOR_CMD,     D(iiP2V) , NULL_VAL },
1367//  poly -> matrix
1368   { POLY_CMD,        MATRIX_CMD,     D(iiP2Id) , NULL_VAL },
1369// the same for polyBucket:
1370   { BUCKET_CMD,      IDEAL_CMD,      D(iiBu2Id) , NULL_VAL },
1371   { BUCKET_CMD,      VECTOR_CMD,     D(iiBu2V) , NULL_VAL },
1372   { BUCKET_CMD,      MATRIX_CMD,     D(iiBu2Id) , NULL_VAL },
1373//  vector -> module
1374   { VECTOR_CMD,      MODUL_CMD,      D(iiP2Id) , NULL_VAL },
1375//  vector -> matrix
1376   { VECTOR_CMD,      MATRIX_CMD,     D(iiV2Ma) , NULL_VAL },
1377//  ideal -> module
1378   { IDEAL_CMD,       MODUL_CMD,      D(iiMa2Mo) , NULL_VAL },
1379//  ideal -> matrix
1380   { IDEAL_CMD,       MATRIX_CMD,     D(iiDummy) , NULL_VAL },
1381//  module -> matrix
1382   { MODUL_CMD,       MATRIX_CMD,     D(iiMo2Ma) , NULL_VAL },
1383//  matrix -> ideal
1384//  matrix -> module
1385   { MATRIX_CMD,      MODUL_CMD,      D(iiMa2Mo) , NULL_VAL },
1386//  intvec
1387//  string -> link
1388   { STRING_CMD,      LINK_CMD,       D(iiS2Link) , NULL_VAL },
1389// resolution -> list
1390   { RESOLUTION_CMD,  LIST_CMD,       NULL_VAL , D(iiR2L_l) },
1391// list -> resolution
1392   { LIST_CMD,        RESOLUTION_CMD, NULL_VAL ,  D(iiL2R) },
1393// matrix -> smatrix
1394   { MATRIX_CMD,      SMATRIX_CMD,    D(iiMa2Mo), NULL_VAL },
1395// module -> smatrix
1396   { MODUL_CMD,       SMATRIX_CMD,    D(iiDummy), NULL_VAL },
1397// smatrix -> matrix
1398   { SMATRIX_CMD,     MATRIX_CMD,     D(iiMo2Ma) , NULL_VAL },
1399// smatrix -> module
1400   { SMATRIX_CMD,     MODUL_CMD,      D(iiDummy) , NULL_VAL },
1401#ifdef SINGULAR_4_2
1402   { INT_CMD,         CNUMBER_CMD,    D(iiI2NN) , NULL_VAL },
1403   { BIGINT_CMD,      CNUMBER_CMD,    D(iiBI2NN) , NULL_VAL },
1404   { CNUMBER_CMD,     NUMBER_CMD,     D(iiNN2N) , NULL_VAL },
1405   { CNUMBER_CMD,     POLY_CMD,       D(iiNN2P) , NULL_VAL },
1406   { INT_CMD,         CPOLY_CMD,      D(iiI2CP), NULL_VAL },
1407   { BIGINT_CMD,      CPOLY_CMD,      D(iiBI2CP), NULL_VAL },
1408//   { NUMBER_CMD,      CPOLY_CMD,      D(iiN2CP), NULL_VAL },
1409   { POLY_CMD,        CPOLY_CMD,      D(iiP2CP), NULL_VAL },
1410#endif
1411//  end of list
1412   { 0,               0,              NULL_VAL , NULL_VAL }
1413};
1414#else
1415extern const struct sConvertTypes dConvertTypes[];
1416#endif
1417#ifdef IPASSIGN
1418const struct sValAssign dAssign[]=
1419{
1420// same res types must be grouped together
1421// proc            res             arg
1422 {D(jiA_BIGINT),   BIGINT_CMD,     BIGINT_CMD }
1423,{D(jiA_BIGINT_N), BIGINT_CMD,     NUMBER_CMD }
1424,{D(jiA_BIGINTMAT),BIGINTVEC_CMD,  BIGINTVEC_CMD }
1425,{D(jiA_BIGINTVEC_IV),BIGINTVEC_CMD,INTVEC_CMD }
1426,{D(jiA_BIGINTMAT),BIGINTMAT_CMD,  BIGINTMAT_CMD}
1427,{D(jiA_CRING),    CRING_CMD,      CRING_CMD }
1428,{D(jiA_IDEAL),    IDEAL_CMD,      IDEAL_CMD }
1429,{D(jiA_IDEAL_Mo), IDEAL_CMD,      MODUL_CMD }
1430,{D(jiA_IDEAL_M),  IDEAL_CMD,      MATRIX_CMD }
1431,{D(jiA_INT),      INT_CMD,        INT_CMD }
1432,{D(jiA_1x1INTMAT), INT_CMD,       INTMAT_CMD }
1433,{D(jiA_INTVEC),   INTVEC_CMD,     INTVEC_CMD }
1434//,{D(jiA_INTVEC_BI),INTVEC_CMD,     BIGINTVEC_CMD }
1435,{D(jiA_INTVEC),   INTMAT_CMD,     INTMAT_CMD }
1436,{D(jiA_LINK),     LINK_CMD,       STRING_CMD }
1437,{D(jiA_LINK),     LINK_CMD,       LINK_CMD }
1438,{D(jiA_LIST_RES), LIST_CMD,       RESOLUTION_CMD }
1439,{D(jiA_LIST),     LIST_CMD,       LIST_CMD }
1440,{D(jiA_MAP_ID),   MAP_CMD,        IDEAL_CMD }
1441,{D(jiA_MAP),      MAP_CMD,        MAP_CMD }
1442,{D(jiA_IDEAL),    MATRIX_CMD,     MATRIX_CMD }
1443,{D(jiA_IDEAL),    MODUL_CMD,      MODUL_CMD }
1444,{D(jiA_MODUL_P),  MODUL_CMD,      POLY_CMD }
1445,{D(jiA_NUMBER),   NUMBER_CMD,     NUMBER_CMD }
1446,{D(jiA_PACKAGE),  PACKAGE_CMD,    PACKAGE_CMD }
1447,{D(jiA_POLY),     POLY_CMD,       POLY_CMD }
1448,{D(jiA_1x1MATRIX),POLY_CMD,       MATRIX_CMD }
1449,{D(jiA_BUCKET),   POLY_CMD,       BUCKET_CMD}
1450,{D(jiA_PROC),     PROC_CMD,       STRING_CMD }
1451,{D(jiA_PROC),     PROC_CMD,       PROC_CMD }
1452,{D(jiA_RESOLUTION),RESOLUTION_CMD,RESOLUTION_CMD }
1453,{D(jiA_RING),     RING_CMD,       RING_CMD }
1454,{D(jiA_QRING),    RING_CMD,       IDEAL_CMD }
1455,{D(jiA_IDEAL),    SMATRIX_CMD,    SMATRIX_CMD }
1456,{D(jiA_IDEAL),    SMATRIX_CMD,    MODUL_CMD }
1457,{D(jiA_STRING),   STRING_CMD,     STRING_CMD }
1458,{D(jiA_POLY),     VECTOR_CMD,     VECTOR_CMD }
1459#ifdef SINGULAR_4_2
1460,{D(jiA_BIGINTMAT),CMATRIX_CMD,    CMATRIX_CMD}
1461,{D(jiA_NUMBER2),  CNUMBER_CMD,    CNUMBER_CMD }
1462,{D(jiA_NUMBER2_I),CNUMBER_CMD,    INT_CMD }
1463,{D(jiA_NUMBER2_N),CNUMBER_CMD,    NUMBER_CMD }
1464,{D(jiA_POLY2),    CPOLY_CMD,      CPOLY_CMD }
1465//,{D(jiA_POLY2_P),  CPOLY_CMD,      POLY_CMD }
1466,{D(jiA_CRING),    CRING_CMD,      CRING_CMD }
1467#endif
1468,{D(jiA_DEF),      DEF_CMD,        DEF_CMD }
1469,{NULL_VAL,        0,              0 }
1470};
1471const struct sValAssign_sys dAssign_sys[]=
1472{
1473// sysvars:
1474 {D(jjECHO),       VECHO,          INT_CMD }
1475,{D(jjPRINTLEVEL), VPRINTLEVEL,    INT_CMD }
1476,{D(jjCOLMAX),     VCOLMAX,        INT_CMD }
1477,{D(jjTIMER),      VTIMER,         INT_CMD }
1478#ifdef HAVE_GETTIMEOFDAY
1479,{D(jjRTIMER),     VRTIMER,        INT_CMD }
1480#endif
1481,{D(jjMAXDEG),     VMAXDEG,        INT_CMD }
1482,{D(jjMAXMULT),    VMAXMULT,       INT_CMD }
1483,{D(jjTRACE),      TRACE,          INT_CMD }
1484,{D(jjSHORTOUT),   VSHORTOUT,      INT_CMD }
1485,{D(jjMINPOLY),    VMINPOLY,       NUMBER_CMD }
1486,{D(jjNOETHER),    VNOETHER,       POLY_CMD }
1487,{NULL_VAL,        0,              0 }
1488};
1489#endif
Note: See TracBrowser for help on using the repository browser.