1 /* All these constants are #define to be used in switch () case : 2 * Copyright (C) 2000,2014 B. Parisse, Institut Fourier, 38402 St Martin d'Heres 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 3 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef _GIAC_DISPATCH_H 19 #define _GIAC_DISPATCH_H 20 #include "global.h" 21 22 #ifndef NO_NAMESPACE_GIAC 23 namespace giac { 24 #endif // ndef NO_NAMESPACE_GIAC 25 26 #if !defined DOUBLEVAL && (defined __amd64 || defined x86_64) && !defined SMARTPTR64 27 #define DOUBLEVAL 1 28 #endif 29 30 enum { 31 _DECALAGE=8, // 2^8=256 32 _DISPATCHBASE=256, 33 _QUOTE_ARGUMENTS=1 34 } ; 35 36 enum gen_unary_types { 37 // immediate type (without mem allocation) should be < _ZINT 38 _INT_= 0, // int val 39 _DOUBLE_= 1, // double _DOUBLE_val 40 // all type below or equal to _DOUBLE_ must be non pointers 41 _ZINT= 2, // mpz_t * _ZINTptr 42 _REAL= 3, // mpf_t * _REALptr 43 // all type strictly below _CPLX must be real types 44 _CPLX= 4, // gen * _CPLXptr 45 _POLY= 5, // polynome * _POLYptr 46 _IDNT= 6, // identificateur * _IDNTptr 47 _VECT= 7, // vecteur * _VECTptr 48 _SYMB= 8, // symbolic * _SYMBptr 49 _SPOL1= 9, // sparse_poly1 * _SPOL1ptr 50 _FRAC= 10, // fraction * _FRACptr 51 _EXT= 11, // gen * _EXTptr 52 _STRNG= 12, // string * _STRNGptr 53 _FUNC= 13, // unary_fonction_ptr * _FUNCptr 54 _ROOT= 14, // real_complex_rootof *_ROOTptr 55 _MOD= 15, // gen * _MODptr 56 _USER= 16, // gen_user * _USERptr 57 _MAP=17, // map<gen.gen> * _MAPptr 58 _EQW=18, // eqwdata * _EQWptr 59 _GROB=19, // grob * _GROBptr 60 _POINTER_=20, // void * _POINTER_val 61 _FLOAT_=21 // immediate, _FLOAT_val 62 } ; 63 64 enum gen_binary_types { 65 _INT___INT_ = _INT_*_DISPATCHBASE+_INT_, 66 _INT___ZINT = _INT_*_DISPATCHBASE+_ZINT, 67 _INT___CPLX = _INT_*_DISPATCHBASE+_CPLX, 68 _INT___POLY = _INT_*_DISPATCHBASE+_POLY, 69 _INT___IDNT = _INT_*_DISPATCHBASE+_IDNT, 70 _INT___SYMB = _INT_*_DISPATCHBASE+_SYMB, 71 _INT___DOUBLE_ = _INT_*_DISPATCHBASE+_DOUBLE_, 72 _INT___FLOAT_ = _INT_*_DISPATCHBASE+_FLOAT_, 73 _INT___VECT = _INT_*_DISPATCHBASE+_VECT, 74 _INT___MAP = _INT_*_DISPATCHBASE+_MAP, 75 _INT___REAL = _INT_*_DISPATCHBASE+_REAL, 76 _INT___FRAC = _INT_*_DISPATCHBASE+_FRAC, 77 _INT___STRNG = _INT_*_DISPATCHBASE+_STRNG, 78 _ZINT__INT_ = _ZINT*_DISPATCHBASE+_INT_, 79 _ZINT__ZINT =_ZINT*_DISPATCHBASE+_ZINT, 80 _ZINT__CPLX = _ZINT*_DISPATCHBASE+_CPLX, 81 _ZINT__POLY =_ZINT*_DISPATCHBASE+_POLY, 82 _ZINT__IDNT = _ZINT*_DISPATCHBASE+_IDNT, 83 _ZINT__SYMB = _ZINT*_DISPATCHBASE+_SYMB, 84 _ZINT__DOUBLE_ = _ZINT*_DISPATCHBASE+_DOUBLE_, 85 _ZINT__FLOAT_ = _ZINT*_DISPATCHBASE+_FLOAT_, 86 _ZINT__VECT = _ZINT*_DISPATCHBASE+_VECT, 87 _ZINT__MAP = _ZINT*_DISPATCHBASE+_MAP, 88 _ZINT__REAL = _ZINT*_DISPATCHBASE+_REAL, 89 _ZINT__FRAC = _ZINT*_DISPATCHBASE+_FRAC, 90 _CPLX__INT_ = _CPLX*_DISPATCHBASE+_INT_, 91 _CPLX__ZINT = _CPLX*_DISPATCHBASE+_ZINT, 92 _CPLX__CPLX = _CPLX*_DISPATCHBASE+_CPLX, 93 _CPLX__POLY = _CPLX*_DISPATCHBASE+_POLY, 94 _CPLX__IDNT = _CPLX*_DISPATCHBASE+_IDNT, 95 _CPLX__SYMB = _CPLX*_DISPATCHBASE+_SYMB, 96 _CPLX__DOUBLE_ = _CPLX*_DISPATCHBASE+_DOUBLE_, 97 _CPLX__FLOAT_ = _CPLX*_DISPATCHBASE+_FLOAT_, 98 _CPLX__REAL = _CPLX*_DISPATCHBASE+_REAL, 99 _CPLX__VECT = _CPLX*_DISPATCHBASE+_VECT, 100 _CPLX__MAP = _CPLX*_DISPATCHBASE+_MAP, 101 _POLY__INT_ = _POLY*_DISPATCHBASE+_INT_, 102 _POLY__ZINT = _POLY*_DISPATCHBASE+_ZINT, 103 _POLY__CPLX = _POLY*_DISPATCHBASE+_CPLX, 104 _POLY__POLY = _POLY*_DISPATCHBASE+_POLY, 105 _POLY__IDNT = _POLY*_DISPATCHBASE+_IDNT, 106 _POLY__SYMB = _POLY*_DISPATCHBASE+_SYMB, 107 _POLY__DOUBLE_ = _POLY*_DISPATCHBASE+_DOUBLE_, 108 _POLY__FLOAT_ = _POLY*_DISPATCHBASE+_FLOAT_, 109 _POLY__VECT = _POLY*_DISPATCHBASE+_VECT, 110 _POLY__MAP = _POLY*_DISPATCHBASE+_MAP, 111 _POLY__USER = _POLY*_DISPATCHBASE+_USER, 112 _POLY__REAL = _POLY*_DISPATCHBASE+_REAL, 113 _POLY__EXT = _POLY*_DISPATCHBASE+_EXT, 114 _IDNT__INT_= _IDNT*_DISPATCHBASE+_INT_, 115 _IDNT__ZINT = _IDNT*_DISPATCHBASE+_ZINT, 116 _IDNT__CPLX = _IDNT*_DISPATCHBASE+_CPLX, 117 _IDNT__POLY = _IDNT*_DISPATCHBASE+_POLY, 118 _IDNT__IDNT = _IDNT*_DISPATCHBASE+_IDNT, 119 _IDNT__SYMB = _IDNT*_DISPATCHBASE+_SYMB, 120 _IDNT__DOUBLE_ = _IDNT*_DISPATCHBASE+_DOUBLE_, 121 _IDNT__FLOAT_ = _IDNT*_DISPATCHBASE+_FLOAT_, 122 _IDNT__VECT = _IDNT*_DISPATCHBASE+_VECT, 123 _IDNT__MAP = _IDNT*_DISPATCHBASE+_MAP, 124 _SYMB__INT_= _SYMB*_DISPATCHBASE+_INT_, 125 _SYMB__ZINT = _SYMB*_DISPATCHBASE+_ZINT, 126 _SYMB__CPLX = _SYMB*_DISPATCHBASE+_CPLX, 127 _SYMB__POLY = _SYMB*_DISPATCHBASE+_POLY, 128 _SYMB__IDNT = _SYMB*_DISPATCHBASE+_IDNT, 129 _SYMB__SYMB = _SYMB*_DISPATCHBASE+_SYMB, 130 _SYMB__DOUBLE_ = _SYMB*_DISPATCHBASE+_DOUBLE_, 131 _SYMB__FLOAT_ = _SYMB*_DISPATCHBASE+_FLOAT_, 132 _SYMB__VECT = _SYMB*_DISPATCHBASE+_VECT, 133 _SYMB__MAP = _SYMB*_DISPATCHBASE+_MAP, 134 _DOUBLE___INT_= _DOUBLE_*_DISPATCHBASE+_INT_, 135 _DOUBLE___ZINT = _DOUBLE_*_DISPATCHBASE+_ZINT, 136 _DOUBLE___CPLX = _DOUBLE_*_DISPATCHBASE+_CPLX, 137 _DOUBLE___POLY = _DOUBLE_*_DISPATCHBASE+_POLY, 138 _DOUBLE___IDNT = _DOUBLE_*_DISPATCHBASE+_IDNT, 139 _DOUBLE___SYMB = _DOUBLE_*_DISPATCHBASE+_SYMB, 140 _DOUBLE___DOUBLE_ = _DOUBLE_*_DISPATCHBASE+_DOUBLE_, 141 _DOUBLE___FLOAT_ = _DOUBLE_*_DISPATCHBASE+_FLOAT_, 142 _DOUBLE___VECT = _DOUBLE_*_DISPATCHBASE+_VECT, 143 _DOUBLE___MAP = _DOUBLE_*_DISPATCHBASE+_MAP, 144 _DOUBLE___REAL = _DOUBLE_*_DISPATCHBASE+_REAL, 145 _DOUBLE___FRAC = _DOUBLE_*_DISPATCHBASE+_FRAC, 146 _DOUBLE___STRNG = _DOUBLE_*_DISPATCHBASE+_STRNG, 147 _FLOAT___INT_= _FLOAT_*_DISPATCHBASE+_INT_, 148 _FLOAT___ZINT = _FLOAT_*_DISPATCHBASE+_ZINT, 149 _FLOAT___CPLX = _FLOAT_*_DISPATCHBASE+_CPLX, 150 _FLOAT___POLY = _FLOAT_*_DISPATCHBASE+_POLY, 151 _FLOAT___IDNT = _FLOAT_*_DISPATCHBASE+_IDNT, 152 _FLOAT___SYMB = _FLOAT_*_DISPATCHBASE+_SYMB, 153 _FLOAT___FLOAT_ = _FLOAT_*_DISPATCHBASE+_FLOAT_, 154 _FLOAT___DOUBLE_ = _FLOAT_*_DISPATCHBASE+_DOUBLE_, 155 _FLOAT___VECT = _FLOAT_*_DISPATCHBASE+_VECT, 156 _FLOAT___MAP = _FLOAT_*_DISPATCHBASE+_MAP, 157 _FLOAT___REAL = _FLOAT_*_DISPATCHBASE+_REAL, 158 _FLOAT___FRAC = _FLOAT_*_DISPATCHBASE+_FRAC, 159 _VECT__INT_= _VECT*_DISPATCHBASE+_INT_, 160 _VECT__DOUBLE_ = _VECT*_DISPATCHBASE+_DOUBLE_, 161 _VECT__FLOAT_ = _VECT*_DISPATCHBASE+_FLOAT_, 162 _VECT__ZINT = _VECT*_DISPATCHBASE+_ZINT, 163 _VECT__CPLX = _VECT*_DISPATCHBASE+_CPLX, 164 _VECT__POLY = _VECT*_DISPATCHBASE+_POLY, 165 _VECT__IDNT = _VECT*_DISPATCHBASE+_IDNT, 166 _VECT__SYMB = _VECT*_DISPATCHBASE+_SYMB, 167 _VECT__VECT = _VECT*_DISPATCHBASE+_VECT, 168 _VECT__EXT = _VECT*_DISPATCHBASE+_EXT, 169 _VECT__FRAC = _VECT*_DISPATCHBASE+_FRAC, 170 _VECT__REAL = _VECT*_DISPATCHBASE+_REAL, 171 _VECT__MAP = _VECT*_DISPATCHBASE+_MAP, 172 _MAP__INT_= _MAP*_DISPATCHBASE+_INT_, 173 _MAP__DOUBLE_ = _MAP*_DISPATCHBASE+_DOUBLE_, 174 _MAP__FLOAT_ = _MAP*_DISPATCHBASE+_FLOAT_, 175 _MAP__ZINT = _MAP*_DISPATCHBASE+_ZINT, 176 _MAP__CPLX = _MAP*_DISPATCHBASE+_CPLX, 177 _MAP__POLY = _MAP*_DISPATCHBASE+_POLY, 178 _MAP__IDNT = _MAP*_DISPATCHBASE+_IDNT, 179 _MAP__SYMB = _MAP*_DISPATCHBASE+_SYMB, 180 _MAP__VECT = _MAP*_DISPATCHBASE+_VECT, 181 _MAP__MAP = _MAP*_DISPATCHBASE+_MAP, 182 _MAP__EXT = _MAP*_DISPATCHBASE+_EXT, 183 _MAP__FRAC = _MAP*_DISPATCHBASE+_FRAC, 184 _MAP__REAL = _MAP*_DISPATCHBASE+_REAL, 185 _FRAC__VECT = _FRAC*_DISPATCHBASE+_VECT, 186 _FRAC__MAP = _FRAC*_DISPATCHBASE+_MAP, 187 _FRAC__FRAC = _FRAC*_DISPATCHBASE+_FRAC, 188 _FRAC__FLOAT_ = _FRAC*_DISPATCHBASE+_FLOAT_, 189 _FRAC__DOUBLE_ = _FRAC*_DISPATCHBASE+_DOUBLE_, 190 _FRAC__INT_= _FRAC*_DISPATCHBASE+_INT_, 191 _FRAC_ZINT= _FRAC*_DISPATCHBASE+_ZINT, 192 _FRAC__REAL= _FRAC*_DISPATCHBASE+_REAL, 193 _SPOL1__SPOL1 = _SPOL1*_DISPATCHBASE+_SPOL1, 194 _EXT__EXT = _EXT*_DISPATCHBASE+_EXT, 195 _EXT__VECT = _EXT*_DISPATCHBASE+_VECT, 196 _EXT__MAP = _EXT*_DISPATCHBASE+_MAP, 197 _EXT__INT_= _EXT*_DISPATCHBASE+_INT_, 198 _EXT__POLY= _EXT*_DISPATCHBASE+_POLY, 199 _STRNG__STRNG = _STRNG*_DISPATCHBASE+_STRNG, 200 _STRNG__INT_= _STRNG*_DISPATCHBASE+_INT_, 201 _STRNG__DOUBLE_= _STRNG*_DISPATCHBASE+_DOUBLE_, 202 _FUNC__FUNC = _FUNC*_DISPATCHBASE+_FUNC, 203 _MOD__MOD = _MOD*_DISPATCHBASE+_MOD, 204 _ZINT__MOD = _ZINT*_DISPATCHBASE+_MOD, 205 _MOD__ZINT = _MOD*_DISPATCHBASE+_ZINT, 206 _MOD__VECT = _MOD*_DISPATCHBASE+_VECT, 207 _MOD__MAP = _MOD*_DISPATCHBASE+_MAP, 208 _VECT__MOD = _VECT*_DISPATCHBASE+_MOD, 209 _MAP__MOD = _MAP*_DISPATCHBASE+_MOD, 210 _MOD__POLY = _MOD*_DISPATCHBASE+_POLY, 211 _POLY__MOD = _POLY*_DISPATCHBASE+_MOD, 212 _INT___MOD= _INT_*_DISPATCHBASE+_MOD, 213 _MOD__INT_= _MOD*_DISPATCHBASE+_INT_, 214 _REAL__CPLX = _REAL*_DISPATCHBASE+_CPLX, 215 _REAL__ZINT = _REAL*_DISPATCHBASE+_ZINT, 216 _REAL__REAL = _REAL*_DISPATCHBASE+_REAL, 217 _REAL__INT_ = _REAL*_DISPATCHBASE+_INT_, 218 _REAL__DOUBLE_ = _REAL*_DISPATCHBASE+_DOUBLE_, 219 _REAL__FLOAT_ = _REAL*_DISPATCHBASE+_FLOAT_, 220 _REAL__POLY = _REAL*_DISPATCHBASE+_POLY, 221 _REAL__VECT = _REAL*_DISPATCHBASE+_VECT, 222 _REAL__MAP = _REAL*_DISPATCHBASE+_MAP, 223 _REAL__FRAC = _REAL*_DISPATCHBASE+_FRAC, 224 _USER__USER= _USER*_DISPATCHBASE+_USER, 225 _USER__INT_= _USER*_DISPATCHBASE+_INT_, 226 _USER__POLY= _USER*_DISPATCHBASE+_POLY 227 } ; 228 229 enum comp_subtypes { 230 _SEQ__VECT=1, 231 _SET__VECT=2, 232 _RPN_FUNC__VECT=3, 233 _RPN_STACK__VECT=4, 234 _GROUP__VECT=5, 235 _LINE__VECT=6, 236 _VECTOR__VECT=7, 237 _PNT__VECT=8, 238 _CURVE__VECT=8, 239 _HALFLINE__VECT=9, 240 _POLY1__VECT=10, 241 _MATRIX__VECT=11, 242 _RUNFILE__VECT=12, 243 _ASSUME__VECT=13, 244 _SPREAD__VECT=14, 245 _CELL__VECT=15, 246 _EQW__VECT=16, 247 _HIST__VECT=17, 248 _TILIST__VECT=0, 249 _FOLDER__VECT=18, 250 _SORTED__VECT=19, 251 _POINT__VECT=20, 252 _POLYEDRE__VECT=21, 253 _RGBA__VECT=22, 254 _LIST__VECT=23, 255 _LOGO__VECT=24, 256 _GGB__VECT=25, 257 _INTERVAL__VECT=26, 258 _GGBVECT=27, 259 _PRINT__VECT=28, 260 _TUPLE__VECT=29, 261 _TABLE__VECT=30, 262 _GRAPH__VECT =31, 263 _PRG__VECT=32, 264 } ; 265 266 enum symb_subtypes { 267 _GLOBAL__EVAL =-1, 268 _SPREAD__SYMB =123, // do not use this value elsewhere 269 _FORCHK__SYMB=124, // cached subtype value for for inside a for loop 270 } ; 271 272 enum map_subtypes { 273 _SPARSE_MATRIX=2, 274 }; 275 276 enum point_styles { 277 _STYLE_DOT=0, 278 _STYLE_BOX=1, 279 _STYLE_CROSS=2, 280 _STYLE_PLUS=3 281 }; 282 283 enum line_styles { 284 _STYLE_FULL=0, 285 _STYLE_DOTTED=1, 286 _STYLE_DASHED=2 287 }; 288 289 enum plot_options { 290 _ADAPTIVE=0, 291 _AXES=1, 292 _COLOR=2, 293 _FILLED=3, 294 _FONT=4, 295 _LABELS=5, 296 _LEGEND=6, 297 _LINESTYLE=7, 298 _RESOLUTION=12, 299 _SAMPLE=9, 300 _SCALING=10, 301 _STYLE=11, 302 _SYMBOL=8, // same as _SYMB! 303 _SYMBOLSIZE=13, 304 _THICKNESS=14, 305 _TITLE=15, 306 _TITLEFONT=16, 307 _VIEW=17, 308 _AXESFONT=18, 309 _COORDS=19, 310 _LABELFONT=20, 311 _LABELDIRECTIONS=21, 312 _NUMPOINTS=22, 313 _TICKMARKS=23, 314 _XTICKMARKS=24, 315 _XSTEP=25, 316 _YSTEP=26, 317 _ZSTEP=27, 318 _TSTEP=28, 319 _USTEP=29, 320 _VSTEP=30, 321 _NSTEP=31, 322 _FRAMES=32, 323 _GL_LIGHT0=33, 324 _GL_LIGHT1=34, 325 _GL_LIGHT2=35, 326 _GL_LIGHT3=36, 327 _GL_LIGHT4=37, 328 _GL_LIGHT5=38, 329 _GL_LIGHT6=39, 330 _GL_LIGHT7=40, 331 _GL_AMBIENT=50, 332 _GL_SPECULAR=51, 333 _GL_DIFFUSE=52, 334 _GL_POSITION=53, 335 _GL_SPOT_DIRECTION=54, 336 _GL_SPOT_EXPONENT=55, 337 _GL_SPOT_CUTOFF=56, 338 _GL_CONSTANT_ATTENUATION=57, 339 _GL_LINEAR_ATTENUATION=58, 340 _GL_QUADRATIC_ATTENUATION=59, 341 _GL_LIGHT_MODEL_AMBIENT=60, 342 _GL_LIGHT_MODEL_LOCAL_VIEWER=61, 343 _GL_LIGHT_MODEL_TWO_SIDE=62, 344 _GL_LIGHT_MODEL_COLOR_CONTROL=72, 345 _GL_OPTION=63, 346 _GL_SMOOTH=64, 347 _GL_FLAT=65, 348 _GL_SHININESS=66, 349 _GL_FRONT=67, 350 _GL_BACK=68, 351 _GL_FRONT_AND_BACK=69, 352 _GL_AMBIENT_AND_DIFFUSE=70, 353 _GL_EMISSION=71, 354 _GL_SEPARATE_SPECULAR_COLOR=73, 355 _GL_SINGLE_COLOR=74, 356 _GL_BLEND=75, 357 _GL_SRC_ALPHA=76, 358 _GL_ONE_MINUS_SRC_ALPHA=77, 359 _GL_MATERIAL=78, 360 _GL_COLOR_INDEXES=79, 361 _GL_LIGHT=80, 362 _GL_PERSPECTIVE=81, 363 _GL_ORTHO=82, 364 _GL_QUATERNION=83, 365 _GL_X=84, 366 _GL_Y=85, 367 _GL_Z=86, 368 _GL_XTICK=87, 369 _GL_YTICK=88, 370 _GL_ZTICK=89, 371 _GL_ANIMATE=90, 372 _GL_SHOWAXES=91, 373 _GL_SHOWNAMES=92, 374 _GL_X_AXIS_NAME=93, 375 _GL_Y_AXIS_NAME=94, 376 _GL_Z_AXIS_NAME=95, 377 _GL_X_AXIS_UNIT=96, 378 _GL_Y_AXIS_UNIT=97, 379 _GL_Z_AXIS_UNIT=98, 380 _GL_TEXTURE=99, 381 _GL_ROTATION_AXIS=100, 382 _GL_X_AXIS_COLOR=101, 383 _GL_Y_AXIS_COLOR=102, 384 _GL_Z_AXIS_COLOR=103, 385 _GL_LOGX=104, 386 _GL_LOGY=105, 387 _GL_LOGZ=106, 388 }; 389 390 enum solver_methods { 391 _BISECTION_SOLVER=0, 392 _FALSEPOS_SOLVER=1, 393 _BRENT_SOLVER=2, 394 _NEWTON_SOLVER=3, 395 _SECANT_SOLVER=4, 396 _STEFFENSON_SOLVER=5, 397 _HYBRIDSJ_SOLVER=6, 398 _HYBRIDJ_SOLVER=7, 399 _NEWTONJ_SOLVER=8, 400 _HYBRIDS_SOLVER=9, 401 _HYBRID_SOLVER=10, 402 _DNEWTON_SOLVER=11, 403 _GOLUB_REINSCH_DECOMP=12, 404 _GOLUB_REINSCH_MOD_DECOMP=13, 405 _JACOBI_DECOMP=14, 406 _MINOR_DET=15, 407 _HESSENBERG_PCAR=16, 408 _RATIONAL_DET=17, 409 _KEEP_PIVOT=18, 410 _TRAPEZE=19, 411 _RECTANGLE_DROIT=20, 412 _RECTANGLE_GAUCHE=21, 413 _POINT_MILIEU=22, 414 _SIMPSON=23, 415 _UNFACTORED=24, 416 _FADEEV=25, 417 _BAREISS=26, 418 _ROMBERGT=27, 419 _ROMBERGM=28, 420 _GAUSS15=29, 421 }; 422 423 enum groebner_switches { 424 _WITH_COCOA=0, 425 _WITH_F5=1, 426 _TDEG_ORDER=2, 427 _PLEX_ORDER=6, 428 _REVLEX_ORDER=4, 429 _MODULAR_CHECK=5, 430 _3VAR_ORDER=3, 431 _7VAR_ORDER=7, // GROEBNER_VARS==15 : double revlex 7 params at end, 7 variables 432 _11VAR_ORDER=11, // GROEBNER_VARS==15 : 3 params at end, 11 variables 433 // use negative values for RUR 434 _16VAR_ORDER=16, // 16 variables to eliminate 435 _32VAR_ORDER=32, // 32 variables to eliminate 436 _48VAR_ORDER=48, // 48 variables to eliminate // not implemented currently 437 _64VAR_ORDER=64, // 64 variables to eliminate 438 _RUR_REVLEX=-4, 439 _RUR_3VAR=-3, 440 _RUR_7VAR=-7, 441 _RUR_11VAR=-11, 442 _RUR_16VAR=-16, 443 _RUR_32VAR=-32, 444 _RUR_48VAR=-48, 445 _RUR_64VAR=-64, 446 }; 447 448 enum int_subtypes { 449 _INT_INT=0, 450 _INT_TYPE=1, 451 _INT_CHAR=2, 452 _INT_ORDER=3, 453 _INT_SOLVER=4, 454 _INT_COLOR=5, 455 _INT_BOOLEAN=6, 456 _INT_PLOT=7, 457 _INT_VECT=8, 458 _INT_MAPLELIB=9, 459 _INT_MAPLECONVERSION=10, 460 _INT_MUPADOPERATOR=11, 461 _INT_FD=12, 462 _INT_COMP_SUBTYPE=13, 463 _INT_GROEBNER=14 464 }; 465 466 enum pointer_subtypes { 467 _FILE_POINTER=0, 468 _FL_WIDGET_POINTER=1, 469 _FL_IMAGE_POINTER=2, 470 _CONTEXT_POINTER=3, 471 _THREAD_POINTER=4, 472 _VARFUNCDEF_POINTER=5, 473 _APPLET_POINTER=6 474 }; 475 476 enum color_values { 477 #ifdef KHICAS 478 _BLACK=0, 479 _RED=0xf800, 480 _GREEN=0x0400, 481 _YELLOW=0xffe0, 482 _BLUE=0x001f, 483 _MAGENTA=0xf81f, 484 _CYAN=0x07ff, 485 _WHITE=0xffff, 486 #else // KHICAS 487 #ifdef GIAC_HAS_STO_38 488 _WHITE=0, 489 #else 490 _BLACK=0, 491 #endif 492 _RED=1, 493 _GREEN=2, 494 _YELLOW=3, 495 _BLUE=4, 496 _MAGENTA=5, 497 _CYAN=6, 498 #ifdef GIAC_HAS_STO_38 499 _BLACK=7, 500 #else 501 _WHITE=7, 502 #endif 503 #endif // KHICAS 504 _POINT_LOSANGE= 1 << 25, 505 _POINT_PLUS = 1 << 26, 506 _POINT_INVISIBLE = 1 << 27, 507 _POINT_CARRE = 100663296, 508 _POINT_TRIANGLE = 167772160, 509 _POINT_ETOILE = 201326592, 510 _POINT_POINT = 234881024, 511 _FILL_POLYGON = 1 << 30, 512 _QUADRANT1 = 0, 513 _QUADRANT2 = 1 << 28, 514 _QUADRANT3 = 1 << 29, 515 _QUADRANT4 = 805306368, 516 _DASH_LINE = 1 << 22, 517 _DOT_LINE = 2 << 22, 518 _DASHDOT_LINE = 3 << 22, 519 _DASHDOTDOT_LINE = 4 << 22, 520 _CAP_FLAT_LINE = 5 << 22, 521 _CAP_ROUND_LINE = 6 << 22, 522 _CAP_SQUARE_LINE = 7 << 22, 523 _LINE_WIDTH_1 = 0, 524 _LINE_WIDTH_2 = 1 << 16, 525 _LINE_WIDTH_3 = 2 << 16, 526 _LINE_WIDTH_4 = 3 << 16, 527 _LINE_WIDTH_5 = 4 << 16, 528 _LINE_WIDTH_6 = 5 << 16, 529 _LINE_WIDTH_7 = 6 << 16, 530 _LINE_WIDTH_8 = 7 << 16, 531 _POINT_WIDTH_1 = 0, 532 _POINT_WIDTH_2 = 1 << 19, 533 _POINT_WIDTH_3 = 2 << 19, 534 _POINT_WIDTH_4 = 3 << 19, 535 _POINT_WIDTH_5 = 4 << 19, 536 _POINT_WIDTH_6 = 5 << 19, 537 _POINT_WIDTH_7 = 6 << 19, 538 _POINT_WIDTH_8 = 7 << 19, 539 #ifdef BESTA_OS 540 #pragma diag_suppress 61 541 #endif 542 _HIDDEN_NAME = 1 << 31 543 }; 544 545 enum maple_libs { 546 _LINALG=0, 547 _NUMTHEORY=1, 548 _GROEBNER=2 549 }; 550 551 enum maple_conversion { 552 _TRIG=100, 553 _EXPLN=101, 554 _PARFRAC=102, 555 _FULLPARFRAC=103, 556 _BASE=104, 557 _CONFRAC=105, 558 _MAPLE_LIST=256, 559 _POSINT=1*256+2, 560 _NEGINT=2*256+2, 561 _NONPOSINT=3*256+2, 562 _NONNEGINT=4*256+2, 563 _LP_BINARY=106, // * binary 564 _LP_BINARYVARIABLES=107, // * binaryvariables 565 _LP_DEPTHLIMIT=108, // * depthlimit 566 _LP_INTEGER=109, // * integer 567 _LP_INTEGERVARIABLES=110, // * integervariables 568 _LP_MAXIMIZE=111, // * maximize 569 _LP_NONNEGATIVE=112, // * nonnegative 570 _LP_NONNEGINT=113, // * nonnegint 571 _LP_VARIABLES=114, // * variables 572 _LP_ASSUME=115, 573 _LP_NODE_LIMIT = 116, // lp_nodelimit 574 _LP_INTEGER_TOLERANCE = 117, // lp_integertolerance 575 _LP_METHOD = 118, // lp_method 576 _LP_SIMPLEX = 119, // lp_simplex 577 _LP_INTERIOR_POINT = 120, // lp_interiorpoint 578 _LP_INITIAL_POINT = 121 , // lp_initialpoint 579 _LP_MAX_CUTS = 122, // lp_maxcuts option 580 _LP_GAP_TOLERANCE = 123, // lp_gaptolerance option 581 _LP_NODESELECT = 124, // lp_nodeselect option 582 _LP_VARSELECT = 125, // lp_varselect option 583 _LP_FIRSTFRACTIONAL = 126, // lp_firstfractional value 584 _LP_LASTFRACTIONAL = 127, // lp_lastfractional value 585 _LP_MOSTFRACTIONAL = 128, // lp_mostfractional value 586 _LP_PSEUDOCOST = 129, // lp_pseudocost value 587 _LP_DEPTHFIRST = 130, // lp_depthfirst value 588 _LP_BREADTHFIRST = 131, // lp_breadthfirst value 589 _LP_BEST_PROJECTION = 132, // lp_bestprojection value 590 _LP_HYBRID = 133, // lp_hybrid value 591 _LP_ITERATION_LIMIT = 134, // lp_iterationlimit option 592 _LP_TIME_LIMIT = 135, // lp_timelimit option 593 _LP_VERBOSE =136, // lp_verbose option 594 _NLP_INITIALPOINT = 137, //nlp_initialpoint 595 _NLP_ITERATIONLIMIT = 138, //nlp_iterationlimit 596 _NLP_NONNEGATIVE = 139, //nlp_nonnegative 597 _NLP_PRECISION = 140, //nlp_precision 598 _NLP_MAXIMIZE = 141, //nlp_maximize 599 _GT_CONNECTED = 142, // connected 600 _GT_SPRING = 143, // spring 601 _GT_TREE = 144, // tree 602 _GT_PLANAR = 145, // planar 603 _GT_DIRECTED = 146, // directed 604 _GT_WEIGHTED = 147, // weighted 605 _GT_WEIGHTS = 148, // weights 606 _GT_BIPARTITE = 149, // bipartite 607 _GT_ACYCLIC = 150, // acyclic 608 _KDE_BANDWIDTH = 151, // bandwidth 609 _KDE_BINS = 152, // bins 610 }; 611 612 enum mupad_operator { 613 _DELETE_OPERATOR=0, 614 _PREFIX_OPERATOR=1, 615 _POSTFIX_OPERATOR=2, 616 _BINARY_OPERATOR=3, 617 _NARY_OPERATOR=4 618 }; 619 620 enum is_num_mask { 621 num_mask_withint=1, 622 num_mask_withfrac=2, 623 }; 624 625 enum step_special { 626 step_nothing_special=0, 627 step_ratfrac=1, 628 step_cyclotomic=2, 629 step_nthroot=3, 630 step_linearizable=4, 631 step_triglinearizable=5, 632 step_polyexp=6, 633 step_ratfracexp=7, 634 step_backsubst=8, 635 step_ratfractrig=9, 636 step_ratfracpow=10, 637 step_ratfracsqrfree=11, 638 step_ratfrachermite=12, 639 step_ratfracfinal=13, 640 step_ratfracchgvar=14, 641 step_linear=15, 642 step_funclinear=16, 643 step_fuuprime=17, 644 step_bypart=18, 645 step_bypart1=19, 646 step_risch=20, 647 step_rrefexchange=21, 648 step_rrefpivot=22, 649 step_rrefpivot0=23, 650 step_rrefend=24, 651 step_extrema1=25, 652 step_extrema2=26, 653 step_extrema3=27, 654 step_extrema4=28, 655 step_extrema5=29, 656 step_extrema6=30, 657 step_extrema7=31, 658 step_extrema8=32, 659 step_integrate_header=33, 660 step_derive_header=34, 661 }; 662 663 664 665 #ifndef NO_NAMESPACE_GIAC 666 } // namespace giac 667 #endif // ndef NO_NAMESPACE_GIAC 668 669 #endif // _GIAC_DISPATCH_H 670