00001 00002 #include <basix/int.hpp> 00003 #include <basix/vector.hpp> 00004 #include <basix/port.hpp> 00005 #include <basix/literal.hpp> 00006 #include <numerix/integer.hpp> 00007 #include <numerix/modular.hpp> 00008 #include <numerix/modular_integer.hpp> 00009 #include <numerix/rational.hpp> 00010 #include <numerix/floating.hpp> 00011 #include <shape/axel_glue.hpp> 00012 #include <shape/point_glue.hpp> 00013 #include <basix/tuple.hpp> 00014 #include <basix/alias.hpp> 00015 #include <basix/glue.hpp> 00016 00017 #define int_literal(x) as_int (as_string (x)) 00018 #define is_generic_literal is<literal> 00019 #define gen_literal_apply(f,v) gen (as<generic> (f), v) 00020 #define gen_literal_access(f,v) access (as<generic> (f), v) 00021 #define shape_point shape::point 00022 00023 namespace mmx { 00024 static int 00025 GLUE_1 (const literal &arg_1) { 00026 return int_literal (arg_1); 00027 } 00028 00029 static int 00030 GLUE_2 (const string &arg_1) { 00031 return as_int (arg_1); 00032 } 00033 00034 static string 00035 GLUE_3 (const int &arg_1) { 00036 return as_string (arg_1); 00037 } 00038 00039 static string 00040 GLUE_4 (const int &arg_1) { 00041 return as_string_hexa (arg_1); 00042 } 00043 00044 static int 00045 GLUE_5 (const int &arg_1) { 00046 return -arg_1; 00047 } 00048 00049 static int 00050 GLUE_6 (const int &arg_1) { 00051 return square (arg_1); 00052 } 00053 00054 static int 00055 GLUE_7 (const int &arg_1, const int &arg_2) { 00056 return arg_1 + arg_2; 00057 } 00058 00059 static int 00060 GLUE_8 (const int &arg_1, const int &arg_2) { 00061 return arg_1 - arg_2; 00062 } 00063 00064 static int 00065 GLUE_9 (const int &arg_1, const int &arg_2) { 00066 return arg_1 * arg_2; 00067 } 00068 00069 static int 00070 GLUE_10 (const int &arg_1, const int &arg_2) { 00071 return arg_1 / arg_2; 00072 } 00073 00074 static int 00075 GLUE_11 (const int &arg_1, const int &arg_2) { 00076 return quo (arg_1, arg_2); 00077 } 00078 00079 static int 00080 GLUE_12 (const int &arg_1, const int &arg_2) { 00081 return rem (arg_1, arg_2); 00082 } 00083 00084 static bool 00085 GLUE_13 (const int &arg_1, const int &arg_2) { 00086 return arg_1 == arg_2; 00087 } 00088 00089 static bool 00090 GLUE_14 (const int &arg_1, const int &arg_2) { 00091 return arg_1 != arg_2; 00092 } 00093 00094 static bool 00095 GLUE_15 (const int &arg_1, const int &arg_2) { 00096 return arg_1 < arg_2; 00097 } 00098 00099 static bool 00100 GLUE_16 (const int &arg_1, const int &arg_2) { 00101 return arg_1 <= arg_2; 00102 } 00103 00104 static bool 00105 GLUE_17 (const int &arg_1, const int &arg_2) { 00106 return arg_1 > arg_2; 00107 } 00108 00109 static bool 00110 GLUE_18 (const int &arg_1, const int &arg_2) { 00111 return arg_1 >= arg_2; 00112 } 00113 00114 static int 00115 GLUE_19 (const int &arg_1) { 00116 return sign (arg_1); 00117 } 00118 00119 static int 00120 GLUE_20 (const int &arg_1) { 00121 return abs (arg_1); 00122 } 00123 00124 static int 00125 GLUE_21 (const int &arg_1, const int &arg_2) { 00126 return min (arg_1, arg_2); 00127 } 00128 00129 static int 00130 GLUE_22 (const int &arg_1, const int &arg_2) { 00131 return max (arg_1, arg_2); 00132 } 00133 00134 static int 00135 GLUE_23 (const int &arg_1, const int &arg_2) { 00136 return min (arg_1, arg_2); 00137 } 00138 00139 static int 00140 GLUE_24 (const int &arg_1, const int &arg_2) { 00141 return max (arg_1, arg_2); 00142 } 00143 00144 static int 00145 GLUE_25 (const int &arg_1, const int &arg_2) { 00146 return arg_1 & arg_2; 00147 } 00148 00149 static int 00150 GLUE_26 (const int &arg_1, const int &arg_2) { 00151 return arg_1 | arg_2; 00152 } 00153 00154 static int 00155 GLUE_27 (const int &arg_1, const int &arg_2) { 00156 return arg_1 ^ arg_2; 00157 } 00158 00159 static int 00160 GLUE_28 (const int &arg_1) { 00161 return floor_sqrt (arg_1); 00162 } 00163 00164 static bool 00165 GLUE_29 (const int &arg_1, const int &arg_2) { 00166 return divides (arg_1, arg_2); 00167 } 00168 00169 static int 00170 GLUE_30 () { 00171 return rand (); 00172 } 00173 00174 static bool 00175 GLUE_31 (const generic &arg_1) { 00176 return is_vector (arg_1); 00177 } 00178 00179 static vector<generic> 00180 GLUE_32 (const tuple<generic> &arg_1) { 00181 return vector<generic > (as_vector (arg_1)); 00182 } 00183 00184 static vector<generic> 00185 GLUE_33 (const tuple<generic> &arg_1) { 00186 return vector<generic > (as_vector (arg_1)); 00187 } 00188 00189 static iterator<generic> 00190 GLUE_34 (const vector<generic> &arg_1) { 00191 return iterate (arg_1); 00192 } 00193 00194 static int 00195 GLUE_35 (const vector<generic> &arg_1) { 00196 return N (arg_1); 00197 } 00198 00199 static generic 00200 GLUE_36 (const vector<generic> &arg_1, const int &arg_2) { 00201 return arg_1[arg_2]; 00202 } 00203 00204 static alias<generic> 00205 GLUE_37 (const alias<vector<generic> > &arg_1, const int &arg_2) { 00206 return alias_access<generic > (arg_1, arg_2); 00207 } 00208 00209 static vector<generic> 00210 GLUE_38 (const vector<generic> &arg_1, const int &arg_2, const int &arg_3) { 00211 return range (arg_1, arg_2, arg_3); 00212 } 00213 00214 static vector<generic> 00215 GLUE_39 (const vector<generic> &arg_1) { 00216 return reverse (arg_1); 00217 } 00218 00219 static vector<generic> 00220 GLUE_40 (const vector<generic> &arg_1, const vector<generic> &arg_2) { 00221 return append (arg_1, arg_2); 00222 } 00223 00224 static alias<vector<generic> > 00225 GLUE_41 (const alias<vector<generic> > &arg_1, const vector<generic> &arg_2) { 00226 return alias_write (arg_1, arg_2); 00227 } 00228 00229 static vector<generic> 00230 GLUE_42 (const generic &arg_1, const vector<generic> &arg_2) { 00231 return cons (arg_1, arg_2); 00232 } 00233 00234 static generic 00235 GLUE_43 (const vector<generic> &arg_1) { 00236 return car (arg_1); 00237 } 00238 00239 static vector<generic> 00240 GLUE_44 (const vector<generic> &arg_1) { 00241 return cdr (arg_1); 00242 } 00243 00244 static bool 00245 GLUE_45 (const vector<generic> &arg_1) { 00246 return is_nil (arg_1); 00247 } 00248 00249 static bool 00250 GLUE_46 (const vector<generic> &arg_1) { 00251 return is_atom (arg_1); 00252 } 00253 00254 static vector<generic> 00255 GLUE_47 (const vector<generic> &arg_1, const generic &arg_2) { 00256 return insert (arg_1, arg_2); 00257 } 00258 00259 static int 00260 GLUE_48 (const vector<generic> &arg_1, const generic &arg_2) { 00261 return find (arg_1, arg_2); 00262 } 00263 00264 static bool 00265 GLUE_49 (const vector<generic> &arg_1, const generic &arg_2) { 00266 return contains (arg_1, arg_2); 00267 } 00268 00269 static bool 00270 GLUE_50 (const generic &arg_1) { 00271 return generic_is_string (arg_1); 00272 } 00273 00274 static int 00275 GLUE_51 (const string &arg_1) { 00276 return N (arg_1); 00277 } 00278 00279 static string 00280 GLUE_52 (const string &arg_1, const int &arg_2, const int &arg_3) { 00281 return arg_1 (arg_2, arg_3); 00282 } 00283 00284 static string 00285 GLUE_53 (const string &arg_1, const string &arg_2) { 00286 return arg_1 * arg_2; 00287 } 00288 00289 static string 00290 GLUE_54 (const string &arg_1, const string &arg_2) { 00291 return arg_1 * arg_2; 00292 } 00293 00294 static alias<string> 00295 GLUE_55 (const alias<string> &arg_1, const string &arg_2) { 00296 return alias_write (arg_1, arg_2); 00297 } 00298 00299 static bool 00300 GLUE_56 (const string &arg_1, const string &arg_2) { 00301 return arg_1 < arg_2; 00302 } 00303 00304 static bool 00305 GLUE_57 (const string &arg_1, const string &arg_2) { 00306 return arg_1 <= arg_2; 00307 } 00308 00309 static bool 00310 GLUE_58 (const string &arg_1, const string &arg_2) { 00311 return arg_1 > arg_2; 00312 } 00313 00314 static bool 00315 GLUE_59 (const string &arg_1, const string &arg_2) { 00316 return arg_1 >= arg_2; 00317 } 00318 00319 static bool 00320 GLUE_60 (const string &arg_1, const string &arg_2) { 00321 return starts (arg_1, arg_2); 00322 } 00323 00324 static bool 00325 GLUE_61 (const string &arg_1, const string &arg_2) { 00326 return ends (arg_1, arg_2); 00327 } 00328 00329 static string 00330 GLUE_62 (const string &arg_1, const string &arg_2, const string &arg_3) { 00331 return replace (arg_1, arg_2, arg_3); 00332 } 00333 00334 static int 00335 GLUE_63 (const string &arg_1, const string &arg_2, const int &arg_3) { 00336 return search_forwards (arg_1, arg_2, arg_3); 00337 } 00338 00339 static int 00340 GLUE_64 (const string &arg_1, const string &arg_2, const int &arg_3) { 00341 return search_backwards (arg_1, arg_2, arg_3); 00342 } 00343 00344 static string 00345 GLUE_65 (const string &arg_1) { 00346 return upcase (arg_1); 00347 } 00348 00349 static string 00350 GLUE_66 (const string &arg_1) { 00351 return locase (arg_1); 00352 } 00353 00354 static string 00355 GLUE_67 (const string &arg_1) { 00356 return upcase_first (arg_1); 00357 } 00358 00359 static string 00360 GLUE_68 (const string &arg_1) { 00361 return locase_first (arg_1); 00362 } 00363 00364 static string 00365 GLUE_69 (const string &arg_1) { 00366 return quote (arg_1); 00367 } 00368 00369 static string 00370 GLUE_70 (const string &arg_1) { 00371 return unquote (arg_1); 00372 } 00373 00374 static string 00375 GLUE_71 (const int &arg_1) { 00376 return charcode_as_string (arg_1); 00377 } 00378 00379 static int 00380 GLUE_72 (const string &arg_1) { 00381 return string_as_charcode (arg_1); 00382 } 00383 00384 static bool 00385 GLUE_73 (const generic &arg_1) { 00386 return is_generic_literal (arg_1); 00387 } 00388 00389 static generic 00390 GLUE_74 (const literal &arg_1, const tuple<generic> &arg_2) { 00391 return gen_literal_apply (arg_1, as_vector (arg_2)); 00392 } 00393 00394 static generic 00395 GLUE_75 (const literal &arg_1, const tuple<generic> &arg_2) { 00396 return gen_literal_access (arg_1, as_vector (arg_2)); 00397 } 00398 00399 static literal 00400 GLUE_76 (const string &arg_1) { 00401 return literal (arg_1); 00402 } 00403 00404 static string 00405 GLUE_77 (const literal &arg_1) { 00406 return *arg_1; 00407 } 00408 00409 static integer 00410 GLUE_78 (const literal &arg_1) { 00411 return make_literal_integer (arg_1); 00412 } 00413 00414 static integer 00415 GLUE_79 (const int &arg_1) { 00416 return integer (arg_1); 00417 } 00418 00419 static integer 00420 GLUE_80 (const int &arg_1) { 00421 return integer (arg_1); 00422 } 00423 00424 static bool 00425 GLUE_81 (const integer &arg_1) { 00426 return is_int (arg_1); 00427 } 00428 00429 static int 00430 GLUE_82 (const integer &arg_1) { 00431 return as_int (arg_1); 00432 } 00433 00434 static integer 00435 GLUE_83 (const string &arg_1) { 00436 return integer (arg_1); 00437 } 00438 00439 static string 00440 GLUE_84 (const integer &arg_1) { 00441 return as_string (arg_1); 00442 } 00443 00444 static generic 00445 GLUE_85 (const int &arg_1) { 00446 return integer_construct (arg_1); 00447 } 00448 00449 static int 00450 GLUE_86 (const integer &arg_1) { 00451 return as_int (arg_1); 00452 } 00453 00454 static integer 00455 GLUE_87 (const integer &arg_1) { 00456 return -arg_1; 00457 } 00458 00459 static integer 00460 GLUE_88 (const integer &arg_1) { 00461 return square (arg_1); 00462 } 00463 00464 static integer 00465 GLUE_89 (const integer &arg_1, const integer &arg_2) { 00466 return arg_1 + arg_2; 00467 } 00468 00469 static integer 00470 GLUE_90 (const integer &arg_1, const integer &arg_2) { 00471 return arg_1 - arg_2; 00472 } 00473 00474 static integer 00475 GLUE_91 (const integer &arg_1, const integer &arg_2) { 00476 return arg_1 * arg_2; 00477 } 00478 00479 static integer 00480 GLUE_92 (const integer &arg_1, const integer &arg_2) { 00481 return arg_1 / arg_2; 00482 } 00483 00484 static integer 00485 GLUE_93 (const integer &arg_1, const integer &arg_2) { 00486 return quo (arg_1, arg_2); 00487 } 00488 00489 static integer 00490 GLUE_94 (const integer &arg_1, const integer &arg_2) { 00491 return rem (arg_1, arg_2); 00492 } 00493 00494 static bool 00495 GLUE_95 (const integer &arg_1, const integer &arg_2) { 00496 return divides (arg_1, arg_2); 00497 } 00498 00499 static integer 00500 GLUE_96 (const integer &arg_1, const integer &arg_2) { 00501 return gcd (arg_1, arg_2); 00502 } 00503 00504 static integer 00505 GLUE_97 (const integer &arg_1, const integer &arg_2) { 00506 return lcm (arg_1, arg_2); 00507 } 00508 00509 static bool 00510 GLUE_98 (const integer &arg_1, const integer &arg_2) { 00511 return arg_1 == arg_2; 00512 } 00513 00514 static bool 00515 GLUE_99 (const integer &arg_1, const integer &arg_2) { 00516 return arg_1 != arg_2; 00517 } 00518 00519 static bool 00520 GLUE_100 (const integer &arg_1, const integer &arg_2) { 00521 return arg_1 < arg_2; 00522 } 00523 00524 static bool 00525 GLUE_101 (const integer &arg_1, const integer &arg_2) { 00526 return arg_1 <= arg_2; 00527 } 00528 00529 static bool 00530 GLUE_102 (const integer &arg_1, const integer &arg_2) { 00531 return arg_1 > arg_2; 00532 } 00533 00534 static bool 00535 GLUE_103 (const integer &arg_1, const integer &arg_2) { 00536 return arg_1 >= arg_2; 00537 } 00538 00539 static int 00540 GLUE_104 (const integer &arg_1) { 00541 return sign (arg_1); 00542 } 00543 00544 static integer 00545 GLUE_105 (const integer &arg_1) { 00546 return abs (arg_1); 00547 } 00548 00549 static integer 00550 GLUE_106 (const integer &arg_1, const integer &arg_2) { 00551 return min (arg_1, arg_2); 00552 } 00553 00554 static integer 00555 GLUE_107 (const integer &arg_1, const integer &arg_2) { 00556 return max (arg_1, arg_2); 00557 } 00558 00559 static integer 00560 GLUE_108 (const integer &arg_1, const integer &arg_2) { 00561 return min (arg_1, arg_2); 00562 } 00563 00564 static integer 00565 GLUE_109 (const integer &arg_1, const integer &arg_2) { 00566 return max (arg_1, arg_2); 00567 } 00568 00569 static integer 00570 GLUE_110 (const integer &arg_1) { 00571 return factorial (arg_1); 00572 } 00573 00574 static integer 00575 GLUE_111 (const integer &arg_1, const integer &arg_2) { 00576 return binomial (arg_1, arg_2); 00577 } 00578 00579 static bool 00580 GLUE_112 (const integer &arg_1) { 00581 return is_probable_prime (arg_1); 00582 } 00583 00584 static integer 00585 GLUE_113 (const integer &arg_1) { 00586 return probable_next_prime (arg_1); 00587 } 00588 00589 static integer 00590 GLUE_114 (const integer &arg_1, const integer &arg_2) { 00591 return arg_1 & arg_2; 00592 } 00593 00594 static integer 00595 GLUE_115 (const integer &arg_1, const integer &arg_2) { 00596 return arg_1 | arg_2; 00597 } 00598 00599 static integer 00600 GLUE_116 (const integer &arg_1, const integer &arg_2) { 00601 return arg_1 ^ arg_2; 00602 } 00603 00604 static integer 00605 GLUE_117 (const integer &arg_1) { 00606 return ~arg_1; 00607 } 00608 00609 static int 00610 GLUE_118 (const integer &arg_1) { 00611 return bit_size (arg_1); 00612 } 00613 00614 static bool 00615 GLUE_119 (const integer &arg_1, const int &arg_2) { 00616 return arg_1[arg_2]; 00617 } 00618 00619 static int 00620 GLUE_120 (const integer &arg_1) { 00621 return hamming_norm (arg_1); 00622 } 00623 00624 static int 00625 GLUE_121 (const integer &arg_1, const integer &arg_2) { 00626 return hamming_distance (arg_1, arg_2); 00627 } 00628 00629 static integer 00630 GLUE_122 (const integer &arg_1, const int &arg_2) { 00631 return arg_1 + arg_2; 00632 } 00633 00634 static integer 00635 GLUE_123 (const integer &arg_1, const int &arg_2) { 00636 return arg_1 - arg_2; 00637 } 00638 00639 static integer 00640 GLUE_124 (const integer &arg_1, const int &arg_2) { 00641 return arg_1 * arg_2; 00642 } 00643 00644 static integer 00645 GLUE_125 (const int &arg_1, const integer &arg_2) { 00646 return arg_1 + arg_2; 00647 } 00648 00649 static integer 00650 GLUE_126 (const int &arg_1, const integer &arg_2) { 00651 return arg_1 - arg_2; 00652 } 00653 00654 static integer 00655 GLUE_127 (const int &arg_1, const integer &arg_2) { 00656 return arg_1 * arg_2; 00657 } 00658 00659 static integer 00660 GLUE_128 (const integer &arg_1, const int &arg_2) { 00661 return arg_1 / arg_2; 00662 } 00663 00664 static integer 00665 GLUE_129 (const integer &arg_1, const int &arg_2) { 00666 return quo (arg_1, arg_2); 00667 } 00668 00669 static integer 00670 GLUE_130 (const integer &arg_1, const int &arg_2) { 00671 return rem (arg_1, arg_2); 00672 } 00673 00674 static bool 00675 GLUE_131 (const integer &arg_1, const int &arg_2) { 00676 return divides (arg_1, arg_2); 00677 } 00678 00679 static integer 00680 GLUE_132 (const int &arg_1, const integer &arg_2) { 00681 return arg_1 / arg_2; 00682 } 00683 00684 static integer 00685 GLUE_133 (const int &arg_1, const integer &arg_2) { 00686 return quo (arg_1, arg_2); 00687 } 00688 00689 static integer 00690 GLUE_134 (const int &arg_1, const integer &arg_2) { 00691 return rem (arg_1, arg_2); 00692 } 00693 00694 static bool 00695 GLUE_135 (const int &arg_1, const integer &arg_2) { 00696 return divides (arg_1, arg_2); 00697 } 00698 00699 static bool 00700 GLUE_136 (const integer &arg_1, const int &arg_2) { 00701 return arg_1 == arg_2; 00702 } 00703 00704 static bool 00705 GLUE_137 (const integer &arg_1, const int &arg_2) { 00706 return arg_1 != arg_2; 00707 } 00708 00709 static bool 00710 GLUE_138 (const integer &arg_1, const int &arg_2) { 00711 return arg_1 < arg_2; 00712 } 00713 00714 static bool 00715 GLUE_139 (const integer &arg_1, const int &arg_2) { 00716 return arg_1 <= arg_2; 00717 } 00718 00719 static bool 00720 GLUE_140 (const integer &arg_1, const int &arg_2) { 00721 return arg_1 > arg_2; 00722 } 00723 00724 static bool 00725 GLUE_141 (const integer &arg_1, const int &arg_2) { 00726 return arg_1 >= arg_2; 00727 } 00728 00729 static bool 00730 GLUE_142 (const int &arg_1, const integer &arg_2) { 00731 return arg_1 == arg_2; 00732 } 00733 00734 static bool 00735 GLUE_143 (const int &arg_1, const integer &arg_2) { 00736 return arg_1 != arg_2; 00737 } 00738 00739 static bool 00740 GLUE_144 (const int &arg_1, const integer &arg_2) { 00741 return arg_1 < arg_2; 00742 } 00743 00744 static bool 00745 GLUE_145 (const int &arg_1, const integer &arg_2) { 00746 return arg_1 <= arg_2; 00747 } 00748 00749 static bool 00750 GLUE_146 (const int &arg_1, const integer &arg_2) { 00751 return arg_1 > arg_2; 00752 } 00753 00754 static bool 00755 GLUE_147 (const int &arg_1, const integer &arg_2) { 00756 return arg_1 >= arg_2; 00757 } 00758 00759 static integer 00760 GLUE_148 (const integer &arg_1, const int &arg_2) { 00761 return min (arg_1, arg_2); 00762 } 00763 00764 static integer 00765 GLUE_149 (const integer &arg_1, const int &arg_2) { 00766 return max (arg_1, arg_2); 00767 } 00768 00769 static integer 00770 GLUE_150 (const int &arg_1, const integer &arg_2) { 00771 return min (arg_1, arg_2); 00772 } 00773 00774 static integer 00775 GLUE_151 (const int &arg_1, const integer &arg_2) { 00776 return max (arg_1, arg_2); 00777 } 00778 00779 static integer 00780 GLUE_152 (const integer &arg_1, const int &arg_2) { 00781 return arg_1 & arg_2; 00782 } 00783 00784 static integer 00785 GLUE_153 (const integer &arg_1, const int &arg_2) { 00786 return arg_1 | arg_2; 00787 } 00788 00789 static integer 00790 GLUE_154 (const integer &arg_1, const int &arg_2) { 00791 return arg_1 ^ arg_2; 00792 } 00793 00794 static integer 00795 GLUE_155 (const int &arg_1, const integer &arg_2) { 00796 return arg_1 & arg_2; 00797 } 00798 00799 static integer 00800 GLUE_156 (const int &arg_1, const integer &arg_2) { 00801 return arg_1 | arg_2; 00802 } 00803 00804 static integer 00805 GLUE_157 (const int &arg_1, const integer &arg_2) { 00806 return arg_1 ^ arg_2; 00807 } 00808 00809 static modulus<int> 00810 GLUE_158 (const int &arg_1) { 00811 return modulus<int > (arg_1); 00812 } 00813 00814 static modulus<int> 00815 GLUE_159 (const int &arg_1) { 00816 return modulus<int > (arg_1); 00817 } 00818 00819 static int 00820 GLUE_160 (const modulus<int> &arg_1) { 00821 return *arg_1; 00822 } 00823 00824 static mmx_modular(int) 00825 GLUE_161 (const int &arg_1, const int &arg_2) { 00826 return (mmx_modular(int ) (arg_1, arg_2)); 00827 } 00828 00829 static mmx_modular(int) 00830 GLUE_162 (const int &arg_1, const modulus<int> &arg_2) { 00831 return (mmx_modular(int ) (arg_1, arg_2)); 00832 } 00833 00834 static mmx_modular(int) 00835 GLUE_163 (const int &arg_1, const modulus<int> &arg_2) { 00836 return (mmx_modular(int ) (arg_1, arg_2)); 00837 } 00838 00839 static modulus<int> 00840 GLUE_164 (const mmx_modular(int) &arg_1) { 00841 return get_modulus (arg_1); 00842 } 00843 00844 static int 00845 GLUE_165 (const mmx_modular(int) &arg_1) { 00846 return *arg_1; 00847 } 00848 00849 static mmx_modular(int) 00850 GLUE_166 (const mmx_modular(int) &arg_1) { 00851 return -arg_1; 00852 } 00853 00854 static mmx_modular(int) 00855 GLUE_167 (const mmx_modular(int) &arg_1) { 00856 return square (arg_1); 00857 } 00858 00859 static mmx_modular(int) 00860 GLUE_168 (const mmx_modular(int) &arg_1, const mmx_modular(int) &arg_2) { 00861 return arg_1 + arg_2; 00862 } 00863 00864 static mmx_modular(int) 00865 GLUE_169 (const mmx_modular(int) &arg_1, const mmx_modular(int) &arg_2) { 00866 return arg_1 - arg_2; 00867 } 00868 00869 static mmx_modular(int) 00870 GLUE_170 (const mmx_modular(int) &arg_1, const mmx_modular(int) &arg_2) { 00871 return arg_1 * arg_2; 00872 } 00873 00874 static mmx_modular(int) 00875 GLUE_171 (const int &arg_1, const mmx_modular(int) &arg_2) { 00876 return arg_1 + arg_2; 00877 } 00878 00879 static mmx_modular(int) 00880 GLUE_172 (const mmx_modular(int) &arg_1, const int &arg_2) { 00881 return arg_1 + arg_2; 00882 } 00883 00884 static mmx_modular(int) 00885 GLUE_173 (const int &arg_1, const mmx_modular(int) &arg_2) { 00886 return arg_1 - arg_2; 00887 } 00888 00889 static mmx_modular(int) 00890 GLUE_174 (const mmx_modular(int) &arg_1, const int &arg_2) { 00891 return arg_1 - arg_2; 00892 } 00893 00894 static mmx_modular(int) 00895 GLUE_175 (const int &arg_1, const mmx_modular(int) &arg_2) { 00896 return arg_1 * arg_2; 00897 } 00898 00899 static mmx_modular(int) 00900 GLUE_176 (const mmx_modular(int) &arg_1, const int &arg_2) { 00901 return arg_1 * arg_2; 00902 } 00903 00904 static mmx_modular(int) 00905 GLUE_177 (const mmx_modular(int) &arg_1, const mmx_modular(int) &arg_2) { 00906 return arg_1 / arg_2; 00907 } 00908 00909 static mmx_modular(int) 00910 GLUE_178 (const int &arg_1, const mmx_modular(int) &arg_2) { 00911 return arg_1 / arg_2; 00912 } 00913 00914 static mmx_modular(int) 00915 GLUE_179 (const mmx_modular(int) &arg_1, const int &arg_2) { 00916 return arg_1 / arg_2; 00917 } 00918 00919 static mmx_modular(int) 00920 GLUE_180 (const mmx_modular(int) &arg_1, const int &arg_2) { 00921 return binpow (arg_1, arg_2); 00922 } 00923 00924 static mmx_modular(int) 00925 GLUE_181 (const mmx_modular(int) &arg_1, const integer &arg_2) { 00926 return binpow (arg_1, arg_2); 00927 } 00928 00929 static bool 00930 GLUE_182 (const mmx_modular(int) &arg_1, const mmx_modular(int) &arg_2) { 00931 return arg_1 == arg_2; 00932 } 00933 00934 static bool 00935 GLUE_183 (const mmx_modular(int) &arg_1, const mmx_modular(int) &arg_2) { 00936 return arg_1 != arg_2; 00937 } 00938 00939 static bool 00940 GLUE_184 (const mmx_modular(int) &arg_1, const int &arg_2) { 00941 return arg_1 == arg_2; 00942 } 00943 00944 static bool 00945 GLUE_185 (const mmx_modular(int) &arg_1, const int &arg_2) { 00946 return arg_1 != arg_2; 00947 } 00948 00949 static bool 00950 GLUE_186 (const int &arg_1, const mmx_modular(int) &arg_2) { 00951 return arg_1 == arg_2; 00952 } 00953 00954 static bool 00955 GLUE_187 (const int &arg_1, const mmx_modular(int) &arg_2) { 00956 return arg_1 != arg_2; 00957 } 00958 00959 static modulus<integer> 00960 GLUE_188 (const integer &arg_1) { 00961 return modulus<integer > (arg_1); 00962 } 00963 00964 static modulus<integer> 00965 GLUE_189 (const integer &arg_1) { 00966 return modulus<integer > (arg_1); 00967 } 00968 00969 static integer 00970 GLUE_190 (const modulus<integer> &arg_1) { 00971 return *arg_1; 00972 } 00973 00974 static mmx_modular(integer) 00975 GLUE_191 (const integer &arg_1, const integer &arg_2) { 00976 return (mmx_modular(integer ) (arg_1, arg_2)); 00977 } 00978 00979 static mmx_modular(integer) 00980 GLUE_192 (const integer &arg_1, const modulus<integer> &arg_2) { 00981 return (mmx_modular(integer ) (arg_1, arg_2)); 00982 } 00983 00984 static mmx_modular(integer) 00985 GLUE_193 (const integer &arg_1, const modulus<integer> &arg_2) { 00986 return (mmx_modular(integer ) (arg_1, arg_2)); 00987 } 00988 00989 static modulus<integer> 00990 GLUE_194 (const mmx_modular(integer) &arg_1) { 00991 return get_modulus (arg_1); 00992 } 00993 00994 static integer 00995 GLUE_195 (const mmx_modular(integer) &arg_1) { 00996 return *arg_1; 00997 } 00998 00999 static mmx_modular(integer) 01000 GLUE_196 (const mmx_modular(integer) &arg_1) { 01001 return -arg_1; 01002 } 01003 01004 static mmx_modular(integer) 01005 GLUE_197 (const mmx_modular(integer) &arg_1) { 01006 return square (arg_1); 01007 } 01008 01009 static mmx_modular(integer) 01010 GLUE_198 (const mmx_modular(integer) &arg_1, const mmx_modular(integer) &arg_2) { 01011 return arg_1 + arg_2; 01012 } 01013 01014 static mmx_modular(integer) 01015 GLUE_199 (const mmx_modular(integer) &arg_1, const mmx_modular(integer) &arg_2) { 01016 return arg_1 - arg_2; 01017 } 01018 01019 static mmx_modular(integer) 01020 GLUE_200 (const mmx_modular(integer) &arg_1, const mmx_modular(integer) &arg_2) { 01021 return arg_1 * arg_2; 01022 } 01023 01024 static mmx_modular(integer) 01025 GLUE_201 (const integer &arg_1, const mmx_modular(integer) &arg_2) { 01026 return arg_1 + arg_2; 01027 } 01028 01029 static mmx_modular(integer) 01030 GLUE_202 (const mmx_modular(integer) &arg_1, const integer &arg_2) { 01031 return arg_1 + arg_2; 01032 } 01033 01034 static mmx_modular(integer) 01035 GLUE_203 (const integer &arg_1, const mmx_modular(integer) &arg_2) { 01036 return arg_1 - arg_2; 01037 } 01038 01039 static mmx_modular(integer) 01040 GLUE_204 (const mmx_modular(integer) &arg_1, const integer &arg_2) { 01041 return arg_1 - arg_2; 01042 } 01043 01044 static mmx_modular(integer) 01045 GLUE_205 (const integer &arg_1, const mmx_modular(integer) &arg_2) { 01046 return arg_1 * arg_2; 01047 } 01048 01049 static mmx_modular(integer) 01050 GLUE_206 (const mmx_modular(integer) &arg_1, const integer &arg_2) { 01051 return arg_1 * arg_2; 01052 } 01053 01054 static mmx_modular(integer) 01055 GLUE_207 (const mmx_modular(integer) &arg_1, const mmx_modular(integer) &arg_2) { 01056 return arg_1 / arg_2; 01057 } 01058 01059 static mmx_modular(integer) 01060 GLUE_208 (const integer &arg_1, const mmx_modular(integer) &arg_2) { 01061 return arg_1 / arg_2; 01062 } 01063 01064 static mmx_modular(integer) 01065 GLUE_209 (const mmx_modular(integer) &arg_1, const integer &arg_2) { 01066 return arg_1 / arg_2; 01067 } 01068 01069 static mmx_modular(integer) 01070 GLUE_210 (const mmx_modular(integer) &arg_1, const int &arg_2) { 01071 return binpow (arg_1, arg_2); 01072 } 01073 01074 static mmx_modular(integer) 01075 GLUE_211 (const mmx_modular(integer) &arg_1, const integer &arg_2) { 01076 return binpow (arg_1, arg_2); 01077 } 01078 01079 static bool 01080 GLUE_212 (const mmx_modular(integer) &arg_1, const mmx_modular(integer) &arg_2) { 01081 return arg_1 == arg_2; 01082 } 01083 01084 static bool 01085 GLUE_213 (const mmx_modular(integer) &arg_1, const mmx_modular(integer) &arg_2) { 01086 return arg_1 != arg_2; 01087 } 01088 01089 static bool 01090 GLUE_214 (const mmx_modular(integer) &arg_1, const integer &arg_2) { 01091 return arg_1 == arg_2; 01092 } 01093 01094 static bool 01095 GLUE_215 (const mmx_modular(integer) &arg_1, const integer &arg_2) { 01096 return arg_1 != arg_2; 01097 } 01098 01099 static bool 01100 GLUE_216 (const integer &arg_1, const mmx_modular(integer) &arg_2) { 01101 return arg_1 == arg_2; 01102 } 01103 01104 static bool 01105 GLUE_217 (const integer &arg_1, const mmx_modular(integer) &arg_2) { 01106 return arg_1 != arg_2; 01107 } 01108 01109 static rational 01110 GLUE_218 (const integer &arg_1) { 01111 return rational (arg_1); 01112 } 01113 01114 static rational 01115 GLUE_219 (const integer &arg_1, const integer &arg_2) { 01116 return rational_new (arg_1, arg_2); 01117 } 01118 01119 static rational 01120 GLUE_220 (const int &arg_1) { 01121 return rational (arg_1); 01122 } 01123 01124 static rational 01125 GLUE_221 (const integer &arg_1) { 01126 return rational (arg_1); 01127 } 01128 01129 static double 01130 GLUE_222 (const rational &arg_1) { 01131 return as_double (arg_1); 01132 } 01133 01134 static rational 01135 GLUE_223 (const integer &arg_1, const integer &arg_2) { 01136 return rational_new (arg_1, arg_2); 01137 } 01138 01139 static integer 01140 GLUE_224 (const rational &arg_1) { 01141 return numerator (arg_1); 01142 } 01143 01144 static integer 01145 GLUE_225 (const rational &arg_1) { 01146 return denominator (arg_1); 01147 } 01148 01149 static bool 01150 GLUE_226 (const rational &arg_1) { 01151 return is_integer (arg_1); 01152 } 01153 01154 static rational 01155 GLUE_227 (const rational &arg_1) { 01156 return -arg_1; 01157 } 01158 01159 static rational 01160 GLUE_228 (const rational &arg_1) { 01161 return square (arg_1); 01162 } 01163 01164 static rational 01165 GLUE_229 (const rational &arg_1, const rational &arg_2) { 01166 return arg_1 + arg_2; 01167 } 01168 01169 static rational 01170 GLUE_230 (const rational &arg_1, const rational &arg_2) { 01171 return arg_1 - arg_2; 01172 } 01173 01174 static rational 01175 GLUE_231 (const rational &arg_1, const rational &arg_2) { 01176 return arg_1 * arg_2; 01177 } 01178 01179 static rational 01180 GLUE_232 (const rational &arg_1, const rational &arg_2) { 01181 return arg_1 / arg_2; 01182 } 01183 01184 static rational 01185 GLUE_233 (const rational &arg_1, const integer &arg_2) { 01186 return arg_1 + arg_2; 01187 } 01188 01189 static rational 01190 GLUE_234 (const rational &arg_1, const integer &arg_2) { 01191 return arg_1 - arg_2; 01192 } 01193 01194 static rational 01195 GLUE_235 (const rational &arg_1, const integer &arg_2) { 01196 return arg_1 * arg_2; 01197 } 01198 01199 static rational 01200 GLUE_236 (const rational &arg_1, const integer &arg_2) { 01201 return arg_1 / arg_2; 01202 } 01203 01204 static rational 01205 GLUE_237 (const integer &arg_1, const rational &arg_2) { 01206 return arg_1 + arg_2; 01207 } 01208 01209 static rational 01210 GLUE_238 (const integer &arg_1, const rational &arg_2) { 01211 return arg_1 - arg_2; 01212 } 01213 01214 static rational 01215 GLUE_239 (const integer &arg_1, const rational &arg_2) { 01216 return arg_1 * arg_2; 01217 } 01218 01219 static rational 01220 GLUE_240 (const integer &arg_1, const rational &arg_2) { 01221 return arg_1 / arg_2; 01222 } 01223 01224 static generic 01225 GLUE_241 (const integer &arg_1, const integer &arg_2) { 01226 return old_integer_pow (arg_1, arg_2); 01227 } 01228 01229 static rational 01230 GLUE_242 (const rational &arg_1, const integer &arg_2) { 01231 return pow (arg_1, arg_2); 01232 } 01233 01234 static rational 01235 GLUE_243 (const rational &arg_1, const rational &arg_2) { 01236 return arg_1 / arg_2; 01237 } 01238 01239 static bool 01240 GLUE_244 (const rational &arg_1, const rational &arg_2) { 01241 return divides (arg_1, arg_2); 01242 } 01243 01244 static rational 01245 GLUE_245 (const rational &arg_1, const rational &arg_2) { 01246 return gcd (arg_1, arg_2); 01247 } 01248 01249 static rational 01250 GLUE_246 (const rational &arg_1, const rational &arg_2) { 01251 return lcm (arg_1, arg_2); 01252 } 01253 01254 static bool 01255 GLUE_247 (const rational &arg_1, const rational &arg_2) { 01256 return arg_1 == arg_2; 01257 } 01258 01259 static bool 01260 GLUE_248 (const rational &arg_1, const rational &arg_2) { 01261 return arg_1 != arg_2; 01262 } 01263 01264 static bool 01265 GLUE_249 (const rational &arg_1, const rational &arg_2) { 01266 return arg_1 < arg_2; 01267 } 01268 01269 static bool 01270 GLUE_250 (const rational &arg_1, const rational &arg_2) { 01271 return arg_1 <= arg_2; 01272 } 01273 01274 static bool 01275 GLUE_251 (const rational &arg_1, const rational &arg_2) { 01276 return arg_1 > arg_2; 01277 } 01278 01279 static bool 01280 GLUE_252 (const rational &arg_1, const rational &arg_2) { 01281 return arg_1 >= arg_2; 01282 } 01283 01284 static bool 01285 GLUE_253 (const rational &arg_1, const integer &arg_2) { 01286 return arg_1 == arg_2; 01287 } 01288 01289 static bool 01290 GLUE_254 (const rational &arg_1, const integer &arg_2) { 01291 return arg_1 != arg_2; 01292 } 01293 01294 static bool 01295 GLUE_255 (const rational &arg_1, const integer &arg_2) { 01296 return arg_1 < arg_2; 01297 } 01298 01299 static bool 01300 GLUE_256 (const rational &arg_1, const integer &arg_2) { 01301 return arg_1 <= arg_2; 01302 } 01303 01304 static bool 01305 GLUE_257 (const rational &arg_1, const integer &arg_2) { 01306 return arg_1 > arg_2; 01307 } 01308 01309 static bool 01310 GLUE_258 (const rational &arg_1, const integer &arg_2) { 01311 return arg_1 >= arg_2; 01312 } 01313 01314 static bool 01315 GLUE_259 (const integer &arg_1, const rational &arg_2) { 01316 return arg_1 == arg_2; 01317 } 01318 01319 static bool 01320 GLUE_260 (const integer &arg_1, const rational &arg_2) { 01321 return arg_1 != arg_2; 01322 } 01323 01324 static bool 01325 GLUE_261 (const integer &arg_1, const rational &arg_2) { 01326 return arg_1 < arg_2; 01327 } 01328 01329 static bool 01330 GLUE_262 (const integer &arg_1, const rational &arg_2) { 01331 return arg_1 <= arg_2; 01332 } 01333 01334 static bool 01335 GLUE_263 (const integer &arg_1, const rational &arg_2) { 01336 return arg_1 > arg_2; 01337 } 01338 01339 static bool 01340 GLUE_264 (const integer &arg_1, const rational &arg_2) { 01341 return arg_1 >= arg_2; 01342 } 01343 01344 static int 01345 GLUE_265 (const rational &arg_1) { 01346 return sign (arg_1); 01347 } 01348 01349 static rational 01350 GLUE_266 (const rational &arg_1) { 01351 return abs (arg_1); 01352 } 01353 01354 static rational 01355 GLUE_267 (const rational &arg_1, const rational &arg_2) { 01356 return min (arg_1, arg_2); 01357 } 01358 01359 static rational 01360 GLUE_268 (const rational &arg_1, const rational &arg_2) { 01361 return max (arg_1, arg_2); 01362 } 01363 01364 static rational 01365 GLUE_269 (const rational &arg_1, const integer &arg_2) { 01366 return min (arg_1, arg_2); 01367 } 01368 01369 static rational 01370 GLUE_270 (const rational &arg_1, const integer &arg_2) { 01371 return max (arg_1, arg_2); 01372 } 01373 01374 static rational 01375 GLUE_271 (const integer &arg_1, const rational &arg_2) { 01376 return min (arg_1, arg_2); 01377 } 01378 01379 static rational 01380 GLUE_272 (const integer &arg_1, const rational &arg_2) { 01381 return max (arg_1, arg_2); 01382 } 01383 01384 static rational 01385 GLUE_273 (const rational &arg_1, const rational &arg_2) { 01386 return min (arg_1, arg_2); 01387 } 01388 01389 static rational 01390 GLUE_274 (const rational &arg_1, const rational &arg_2) { 01391 return max (arg_1, arg_2); 01392 } 01393 01394 static rational 01395 GLUE_275 (const rational &arg_1, const integer &arg_2) { 01396 return min (arg_1, arg_2); 01397 } 01398 01399 static rational 01400 GLUE_276 (const rational &arg_1, const integer &arg_2) { 01401 return max (arg_1, arg_2); 01402 } 01403 01404 static rational 01405 GLUE_277 (const integer &arg_1, const rational &arg_2) { 01406 return min (arg_1, arg_2); 01407 } 01408 01409 static rational 01410 GLUE_278 (const integer &arg_1, const rational &arg_2) { 01411 return max (arg_1, arg_2); 01412 } 01413 01414 static rational 01415 GLUE_279 (const rational &arg_1) { 01416 return floor (arg_1); 01417 } 01418 01419 static rational 01420 GLUE_280 (const rational &arg_1) { 01421 return ceil (arg_1); 01422 } 01423 01424 static rational 01425 GLUE_281 (const rational &arg_1) { 01426 return trunc (arg_1); 01427 } 01428 01429 static rational 01430 GLUE_282 (const rational &arg_1) { 01431 return round (arg_1); 01432 } 01433 01434 static rational 01435 GLUE_283 (const mmx_modular(int) &arg_1) { 01436 return reconstruct (arg_1); 01437 } 01438 01439 static rational 01440 GLUE_284 (const mmx_modular(integer) &arg_1) { 01441 return reconstruct (arg_1); 01442 } 01443 01444 static mmx_floating 01445 GLUE_285 (const literal &arg_1) { 01446 return make_literal_floating (arg_1); 01447 } 01448 01449 static mmx_floating 01450 GLUE_286 (const int &arg_1) { 01451 return mmx_floating (arg_1); 01452 } 01453 01454 static mmx_floating 01455 GLUE_287 (const integer &arg_1) { 01456 return mmx_floating (arg_1); 01457 } 01458 01459 static mmx_floating 01460 GLUE_288 (const rational &arg_1) { 01461 return mmx_floating (arg_1); 01462 } 01463 01464 static mmx_floating 01465 GLUE_289 (const int &arg_1) { 01466 return mmx_floating (arg_1); 01467 } 01468 01469 static mmx_floating 01470 GLUE_290 (const double &arg_1) { 01471 return mmx_floating (arg_1); 01472 } 01473 01474 static mmx_floating 01475 GLUE_291 (const integer &arg_1) { 01476 return mmx_floating (arg_1); 01477 } 01478 01479 static mmx_floating 01480 GLUE_292 (const rational &arg_1) { 01481 return mmx_floating (arg_1); 01482 } 01483 01484 static mmx_floating 01485 GLUE_293 (const string &arg_1) { 01486 return mmx_floating (arg_1); 01487 } 01488 01489 static int 01490 GLUE_294 (const mmx_floating &arg_1) { 01491 return as_int (arg_1); 01492 } 01493 01494 static double 01495 GLUE_295 (const mmx_floating &arg_1) { 01496 return as_double (arg_1); 01497 } 01498 01499 static integer 01500 GLUE_296 (const mmx_floating &arg_1) { 01501 return as_integer (arg_1); 01502 } 01503 01504 static string 01505 GLUE_297 (const mmx_floating &arg_1) { 01506 return as_string (arg_1); 01507 } 01508 01509 static mmx_floating 01510 GLUE_298 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01511 return uniform_deviate (arg_1, arg_2); 01512 } 01513 01514 static mmx_floating 01515 GLUE_299 (const mmx_floating &arg_1) { 01516 return -arg_1; 01517 } 01518 01519 static mmx_floating 01520 GLUE_300 (const mmx_floating &arg_1) { 01521 return square (arg_1); 01522 } 01523 01524 static mmx_floating 01525 GLUE_301 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01526 return arg_1 + arg_2; 01527 } 01528 01529 static mmx_floating 01530 GLUE_302 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01531 return arg_1 - arg_2; 01532 } 01533 01534 static mmx_floating 01535 GLUE_303 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01536 return arg_1 * arg_2; 01537 } 01538 01539 static mmx_floating 01540 GLUE_304 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01541 return arg_1 / arg_2; 01542 } 01543 01544 static mmx_floating 01545 GLUE_305 (const mmx_floating &arg_1) { 01546 return sqrt (arg_1); 01547 } 01548 01549 static mmx_floating 01550 GLUE_306 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01551 return pow (arg_1, arg_2); 01552 } 01553 01554 static mmx_floating 01555 GLUE_307 (const mmx_floating &arg_1) { 01556 return exp (arg_1); 01557 } 01558 01559 static mmx_floating 01560 GLUE_308 (const mmx_floating &arg_1) { 01561 return log (arg_1); 01562 } 01563 01564 static mmx_floating 01565 GLUE_309 (const mmx_floating &arg_1) { 01566 return cos (arg_1); 01567 } 01568 01569 static mmx_floating 01570 GLUE_310 (const mmx_floating &arg_1) { 01571 return sin (arg_1); 01572 } 01573 01574 static mmx_floating 01575 GLUE_311 (const mmx_floating &arg_1) { 01576 return tan (arg_1); 01577 } 01578 01579 static mmx_floating 01580 GLUE_312 (const mmx_floating &arg_1) { 01581 return acos (arg_1); 01582 } 01583 01584 static mmx_floating 01585 GLUE_313 (const mmx_floating &arg_1) { 01586 return asin (arg_1); 01587 } 01588 01589 static mmx_floating 01590 GLUE_314 (const mmx_floating &arg_1) { 01591 return atan (arg_1); 01592 } 01593 01594 static bool 01595 GLUE_315 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01596 return arg_1 < arg_2; 01597 } 01598 01599 static bool 01600 GLUE_316 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01601 return arg_1 <= arg_2; 01602 } 01603 01604 static bool 01605 GLUE_317 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01606 return arg_1 > arg_2; 01607 } 01608 01609 static bool 01610 GLUE_318 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01611 return arg_1 >= arg_2; 01612 } 01613 01614 static int 01615 GLUE_319 (const mmx_floating &arg_1) { 01616 return sign (arg_1); 01617 } 01618 01619 static mmx_floating 01620 GLUE_320 (const mmx_floating &arg_1) { 01621 return abs (arg_1); 01622 } 01623 01624 static mmx_floating 01625 GLUE_321 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01626 return min (arg_1, arg_2); 01627 } 01628 01629 static mmx_floating 01630 GLUE_322 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01631 return max (arg_1, arg_2); 01632 } 01633 01634 static mmx_floating 01635 GLUE_323 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01636 return min (arg_1, arg_2); 01637 } 01638 01639 static mmx_floating 01640 GLUE_324 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 01641 return max (arg_1, arg_2); 01642 } 01643 01644 static mmx_floating 01645 GLUE_325 (const mmx_floating &arg_1) { 01646 return floor (arg_1); 01647 } 01648 01649 static mmx_floating 01650 GLUE_326 (const mmx_floating &arg_1) { 01651 return ceil (arg_1); 01652 } 01653 01654 static mmx_floating 01655 GLUE_327 (const mmx_floating &arg_1) { 01656 return trunc (arg_1); 01657 } 01658 01659 static mmx_floating 01660 GLUE_328 (const mmx_floating &arg_1) { 01661 return round (arg_1); 01662 } 01663 01664 static bool 01665 GLUE_329 (const mmx_floating &arg_1) { 01666 return is_finite (arg_1); 01667 } 01668 01669 static bool 01670 GLUE_330 (const mmx_floating &arg_1) { 01671 return is_infinite (arg_1); 01672 } 01673 01674 static bool 01675 GLUE_331 (const mmx_floating &arg_1) { 01676 return is_nan (arg_1); 01677 } 01678 01679 static mmx_floating 01680 GLUE_332 (const mmx_floating &arg_1) { 01681 return times_infinity (arg_1); 01682 } 01683 01684 static int 01685 GLUE_333 (const mmx_floating &arg_1) { 01686 return precision (arg_1); 01687 } 01688 01689 static mmx_floating 01690 GLUE_334 (const mmx_floating &arg_1, const int &arg_2) { 01691 return change_precision (arg_1, arg_2); 01692 } 01693 01694 static mmx_floating 01695 GLUE_335 (const mmx_floating &arg_1) { 01696 return next_above (arg_1); 01697 } 01698 01699 static mmx_floating 01700 GLUE_336 (const mmx_floating &arg_1) { 01701 return next_below (arg_1); 01702 } 01703 01704 static int 01705 GLUE_337 (const mmx_floating &arg_1) { 01706 return exponent (arg_1); 01707 } 01708 01709 static double 01710 GLUE_338 (const mmx_floating &arg_1) { 01711 return magnitude (arg_1); 01712 } 01713 01714 static mmx_floating 01715 GLUE_339 (const mmx_floating &arg_1, const int &arg_2) { 01716 return incexp2 (arg_1, arg_2); 01717 } 01718 01719 static mmx_floating 01720 GLUE_340 (const mmx_floating &arg_1, const int &arg_2) { 01721 return decexp2 (arg_1, arg_2); 01722 } 01723 01724 static mmx_floating 01725 GLUE_341 (const mmx_floating &arg_1) { 01726 return rounding_error (arg_1); 01727 } 01728 01729 static mmx_floating 01730 GLUE_342 (const mmx_floating &arg_1) { 01731 return additive_error (arg_1); 01732 } 01733 01734 static mmx_floating 01735 GLUE_343 (const mmx_floating &arg_1) { 01736 return multiplicative_error (arg_1); 01737 } 01738 01739 static mmx_floating 01740 GLUE_344 (const mmx_floating &arg_1) { 01741 return elementary_error (arg_1); 01742 } 01743 01744 static shape_axel 01745 GLUE_345 () { 01746 return shape_axel (); 01747 } 01748 01749 static shape_axel 01750 GLUE_346 (const string &arg_1) { 01751 return shape_axel_string (arg_1); 01752 } 01753 01754 static void 01755 GLUE_347 (const shape_axel &arg_1) { 01756 shape_axel_view (arg_1); 01757 } 01758 01759 static shape_point<rational> 01760 GLUE_348 (const tuple<rational> &arg_1) { 01761 return shape_point_tuple<rational > (as_vector (arg_1)); 01762 } 01763 01764 static rational 01765 GLUE_349 (const shape_point<rational> &arg_1, const int &arg_2) { 01766 return arg_1[arg_2]; 01767 } 01768 01769 static alias<rational> 01770 GLUE_350 (const alias<shape_point<rational> > &arg_1, const int &arg_2) { 01771 return alias_access<rational > (arg_1, arg_2); 01772 } 01773 01774 static shape_point<rational> 01775 GLUE_351 (const shape_point<rational> &arg_1, const shape_point<rational> &arg_2) { 01776 return arg_1 - arg_2; 01777 } 01778 01779 static alias<shape_axel> 01780 GLUE_352 (const alias<shape_axel> &arg_1, const shape_point<rational> &arg_2) { 01781 return alias_write (arg_1, arg_2); 01782 } 01783 01784 static vector<integer> 01785 GLUE_353 (const tuple<integer> &arg_1) { 01786 return vector<integer > (as_vector (arg_1)); 01787 } 01788 01789 static vector<integer> 01790 GLUE_354 (const tuple<integer> &arg_1) { 01791 return vector<integer > (as_vector (arg_1)); 01792 } 01793 01794 static iterator<generic> 01795 GLUE_355 (const vector<integer> &arg_1) { 01796 return as<iterator<generic> > (iterate (arg_1)); 01797 } 01798 01799 static int 01800 GLUE_356 (const vector<integer> &arg_1) { 01801 return N (arg_1); 01802 } 01803 01804 static integer 01805 GLUE_357 (const vector<integer> &arg_1, const int &arg_2) { 01806 return arg_1[arg_2]; 01807 } 01808 01809 static alias<integer> 01810 GLUE_358 (const alias<vector<integer> > &arg_1, const int &arg_2) { 01811 return alias_access<integer > (arg_1, arg_2); 01812 } 01813 01814 static vector<integer> 01815 GLUE_359 (const vector<integer> &arg_1, const int &arg_2, const int &arg_3) { 01816 return range (arg_1, arg_2, arg_3); 01817 } 01818 01819 static vector<integer> 01820 GLUE_360 (const vector<integer> &arg_1) { 01821 return reverse (arg_1); 01822 } 01823 01824 static vector<integer> 01825 GLUE_361 (const vector<integer> &arg_1, const vector<integer> &arg_2) { 01826 return append (arg_1, arg_2); 01827 } 01828 01829 static alias<vector<integer> > 01830 GLUE_362 (const alias<vector<integer> > &arg_1, const vector<integer> &arg_2) { 01831 return alias_write (arg_1, arg_2); 01832 } 01833 01834 static vector<integer> 01835 GLUE_363 (const integer &arg_1, const vector<integer> &arg_2) { 01836 return cons (arg_1, arg_2); 01837 } 01838 01839 static integer 01840 GLUE_364 (const vector<integer> &arg_1) { 01841 return car (arg_1); 01842 } 01843 01844 static vector<integer> 01845 GLUE_365 (const vector<integer> &arg_1) { 01846 return cdr (arg_1); 01847 } 01848 01849 static bool 01850 GLUE_366 (const vector<integer> &arg_1) { 01851 return is_nil (arg_1); 01852 } 01853 01854 static bool 01855 GLUE_367 (const vector<integer> &arg_1) { 01856 return is_atom (arg_1); 01857 } 01858 01859 static vector<integer> 01860 GLUE_368 (const vector<integer> &arg_1, const integer &arg_2) { 01861 return insert (arg_1, arg_2); 01862 } 01863 01864 static int 01865 GLUE_369 (const vector<integer> &arg_1, const integer &arg_2) { 01866 return find (arg_1, arg_2); 01867 } 01868 01869 static bool 01870 GLUE_370 (const vector<integer> &arg_1, const integer &arg_2) { 01871 return contains (arg_1, arg_2); 01872 } 01873 01874 static vector<rational> 01875 GLUE_371 (const tuple<rational> &arg_1) { 01876 return vector<rational > (as_vector (arg_1)); 01877 } 01878 01879 static vector<rational> 01880 GLUE_372 (const tuple<rational> &arg_1) { 01881 return vector<rational > (as_vector (arg_1)); 01882 } 01883 01884 static iterator<generic> 01885 GLUE_373 (const vector<rational> &arg_1) { 01886 return as<iterator<generic> > (iterate (arg_1)); 01887 } 01888 01889 static int 01890 GLUE_374 (const vector<rational> &arg_1) { 01891 return N (arg_1); 01892 } 01893 01894 static rational 01895 GLUE_375 (const vector<rational> &arg_1, const int &arg_2) { 01896 return arg_1[arg_2]; 01897 } 01898 01899 static alias<rational> 01900 GLUE_376 (const alias<vector<rational> > &arg_1, const int &arg_2) { 01901 return alias_access<rational > (arg_1, arg_2); 01902 } 01903 01904 static vector<rational> 01905 GLUE_377 (const vector<rational> &arg_1, const int &arg_2, const int &arg_3) { 01906 return range (arg_1, arg_2, arg_3); 01907 } 01908 01909 static vector<rational> 01910 GLUE_378 (const vector<rational> &arg_1) { 01911 return reverse (arg_1); 01912 } 01913 01914 static vector<rational> 01915 GLUE_379 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 01916 return append (arg_1, arg_2); 01917 } 01918 01919 static alias<vector<rational> > 01920 GLUE_380 (const alias<vector<rational> > &arg_1, const vector<rational> &arg_2) { 01921 return alias_write (arg_1, arg_2); 01922 } 01923 01924 static vector<rational> 01925 GLUE_381 (const rational &arg_1, const vector<rational> &arg_2) { 01926 return cons (arg_1, arg_2); 01927 } 01928 01929 static rational 01930 GLUE_382 (const vector<rational> &arg_1) { 01931 return car (arg_1); 01932 } 01933 01934 static vector<rational> 01935 GLUE_383 (const vector<rational> &arg_1) { 01936 return cdr (arg_1); 01937 } 01938 01939 static bool 01940 GLUE_384 (const vector<rational> &arg_1) { 01941 return is_nil (arg_1); 01942 } 01943 01944 static bool 01945 GLUE_385 (const vector<rational> &arg_1) { 01946 return is_atom (arg_1); 01947 } 01948 01949 static vector<rational> 01950 GLUE_386 (const vector<rational> &arg_1, const rational &arg_2) { 01951 return insert (arg_1, arg_2); 01952 } 01953 01954 static int 01955 GLUE_387 (const vector<rational> &arg_1, const rational &arg_2) { 01956 return find (arg_1, arg_2); 01957 } 01958 01959 static bool 01960 GLUE_388 (const vector<rational> &arg_1, const rational &arg_2) { 01961 return contains (arg_1, arg_2); 01962 } 01963 01964 static vector<generic> 01965 GLUE_389 (const vector<integer> &arg_1) { 01966 return as<vector<generic> > (arg_1); 01967 } 01968 01969 static vector<rational> 01970 GLUE_390 (const vector<integer> &arg_1) { 01971 return as<vector<rational> > (arg_1); 01972 } 01973 01974 static vector<generic> 01975 GLUE_391 (const vector<rational> &arg_1) { 01976 return as<vector<generic> > (arg_1); 01977 } 01978 01979 static shape_point<rational> 01980 GLUE_392 (const shape_point<rational> &arg_1, const vector<rational> &arg_2) { 01981 return arg_1 + arg_2; 01982 } 01983 01984 void 01985 glue_point () { 01986 static bool done = false; 01987 if (done) return; 01988 done = true; 01989 define_type<int > (lit ("Int")); 01990 define ("literal_integer", GLUE_1); 01991 define ("as_int", GLUE_2); 01992 define ("as_string", GLUE_3); 01993 define ("as_string_hexa", GLUE_4); 01994 define ("-", GLUE_5); 01995 define ("square", GLUE_6); 01996 define ("+", GLUE_7); 01997 define ("-", GLUE_8); 01998 define ("*", GLUE_9); 01999 define ("div", GLUE_10); 02000 define ("quo", GLUE_11); 02001 define ("rem", GLUE_12); 02002 define ("=", GLUE_13); 02003 define ("!=", GLUE_14); 02004 define ("<", GLUE_15); 02005 define ("<=", GLUE_16); 02006 define (">", GLUE_17); 02007 define (">=", GLUE_18); 02008 define ("sign", GLUE_19); 02009 define ("abs", GLUE_20); 02010 define ("min", GLUE_21); 02011 define ("max", GLUE_22); 02012 define ("inf", GLUE_23); 02013 define ("sup", GLUE_24); 02014 define ("/\\", GLUE_25); 02015 define ("\\/", GLUE_26); 02016 define ("xor", GLUE_27); 02017 define ("floor_sqrt", GLUE_28); 02018 define ("divides?", GLUE_29); 02019 define ("random", GLUE_30); 02020 define_constant<int > ("int_minus_infinity", int_minus_infinity); 02021 define_constant<int > ("int_plus_infinity", int_plus_infinity); 02022 define_type<vector<generic> > (gen (lit ("Vector"), lit ("Generic"))); 02023 define ("vector?", GLUE_31); 02024 define ("vector", GLUE_32); 02025 define ("[]", GLUE_33); 02026 define_converter (":>", GLUE_34, PENALTY_PROMOTE_GENERIC); 02027 define ("#", GLUE_35); 02028 define (".[]", GLUE_36); 02029 define (".[]", GLUE_37); 02030 define (".[]", GLUE_38); 02031 define ("reverse", GLUE_39); 02032 define ("><", GLUE_40); 02033 define ("<<", GLUE_41); 02034 define ("cons", GLUE_42); 02035 define ("car", GLUE_43); 02036 define ("cdr", GLUE_44); 02037 define ("nil?", GLUE_45); 02038 define ("atom?", GLUE_46); 02039 define ("insert", GLUE_47); 02040 define ("find", GLUE_48); 02041 define ("contains?", GLUE_49); 02042 define ("string?", GLUE_50); 02043 define ("#", GLUE_51); 02044 define (".[]", GLUE_52); 02045 define ("*", GLUE_53); 02046 define ("><", GLUE_54); 02047 define ("<<", GLUE_55); 02048 define ("<", GLUE_56); 02049 define ("<=", GLUE_57); 02050 define (">", GLUE_58); 02051 define (">=", GLUE_59); 02052 define ("starts?", GLUE_60); 02053 define ("ends?", GLUE_61); 02054 define ("replace", GLUE_62); 02055 define ("search_forwards", GLUE_63); 02056 define ("search_backwards", GLUE_64); 02057 define ("upcase", GLUE_65); 02058 define ("locase", GLUE_66); 02059 define ("upcase_first", GLUE_67); 02060 define ("locase_first", GLUE_68); 02061 define ("quote", GLUE_69); 02062 define ("unquote", GLUE_70); 02063 define ("ascii", GLUE_71); 02064 define ("ascii_code", GLUE_72); 02065 define ("literal?", GLUE_73); 02066 define (".()", GLUE_74); 02067 define (".[]", GLUE_75); 02068 define ("as_literal", GLUE_76); 02069 define ("as_string", GLUE_77); 02070 define_type<integer > (lit ("Integer")); 02071 define ("literal_integer", GLUE_78); 02072 define ("integer", GLUE_79); 02073 define_converter ("upgrade", GLUE_80, PENALTY_INCLUSION); 02074 define ("int?", GLUE_81); 02075 define ("as_int", GLUE_82); 02076 define ("as_integer", GLUE_83); 02077 define ("as_string", GLUE_84); 02078 define_constructor<int > (GLUE_85); 02079 define_converter (":>", GLUE_86, PENALTY_INCLUSION); 02080 define ("-", GLUE_87); 02081 define ("square", GLUE_88); 02082 define ("+", GLUE_89); 02083 define ("-", GLUE_90); 02084 define ("*", GLUE_91); 02085 define ("div", GLUE_92); 02086 define ("quo", GLUE_93); 02087 define ("rem", GLUE_94); 02088 define ("divides?", GLUE_95); 02089 define ("gcd", GLUE_96); 02090 define ("lcm", GLUE_97); 02091 define ("=", GLUE_98); 02092 define ("!=", GLUE_99); 02093 define ("<", GLUE_100); 02094 define ("<=", GLUE_101); 02095 define (">", GLUE_102); 02096 define (">=", GLUE_103); 02097 define ("sign", GLUE_104); 02098 define ("abs", GLUE_105); 02099 define ("min", GLUE_106); 02100 define ("max", GLUE_107); 02101 define ("inf", GLUE_108); 02102 define ("sup", GLUE_109); 02103 define (".!", GLUE_110); 02104 define ("binomial", GLUE_111); 02105 define ("probable_prime?", GLUE_112); 02106 define ("probable_next_prime", GLUE_113); 02107 define ("/\\", GLUE_114); 02108 define ("\\/", GLUE_115); 02109 define ("xor", GLUE_116); 02110 define ("!", GLUE_117); 02111 define ("#", GLUE_118); 02112 define (".[]", GLUE_119); 02113 define ("hamming_norm", GLUE_120); 02114 define ("hamming_distance", GLUE_121); 02115 define ("+", GLUE_122); 02116 define ("-", GLUE_123); 02117 define ("*", GLUE_124); 02118 define ("+", GLUE_125); 02119 define ("-", GLUE_126); 02120 define ("*", GLUE_127); 02121 define ("div", GLUE_128); 02122 define ("quo", GLUE_129); 02123 define ("rem", GLUE_130); 02124 define ("divides?", GLUE_131); 02125 define ("div", GLUE_132); 02126 define ("quo", GLUE_133); 02127 define ("rem", GLUE_134); 02128 define ("divides?", GLUE_135); 02129 define ("=", GLUE_136); 02130 define ("!=", GLUE_137); 02131 define ("<", GLUE_138); 02132 define ("<=", GLUE_139); 02133 define (">", GLUE_140); 02134 define (">=", GLUE_141); 02135 define ("=", GLUE_142); 02136 define ("!=", GLUE_143); 02137 define ("<", GLUE_144); 02138 define ("<=", GLUE_145); 02139 define (">", GLUE_146); 02140 define (">=", GLUE_147); 02141 define ("min", GLUE_148); 02142 define ("max", GLUE_149); 02143 define ("min", GLUE_150); 02144 define ("max", GLUE_151); 02145 define ("/\\", GLUE_152); 02146 define ("\\/", GLUE_153); 02147 define ("xor", GLUE_154); 02148 define ("/\\", GLUE_155); 02149 define ("\\/", GLUE_156); 02150 define ("xor", GLUE_157); 02151 define_type<modulus<int> > (gen (lit ("Modulus"), lit ("Int"))); 02152 define_type<modulus<integer> > (gen (lit ("Modulus"), lit ("Integer"))); 02153 define_type<mmx_modular(int) > (gen (lit ("Modular"), lit ("Int"))); 02154 define_type<mmx_modular(integer) > (gen (lit ("Modular"), lit ("Integer"))); 02155 define ("modulus", GLUE_158); 02156 define_converter ("upgrade", GLUE_159, PENALTY_HOMOMORPHISM); 02157 define_converter (":>", GLUE_160, PENALTY_CAST); 02158 define ("modular", GLUE_161); 02159 define ("modular", GLUE_162); 02160 define ("mod", GLUE_163); 02161 define ("get_modulus", GLUE_164); 02162 define ("preimage", GLUE_165); 02163 define ("-", GLUE_166); 02164 define ("square", GLUE_167); 02165 define ("+", GLUE_168); 02166 define ("-", GLUE_169); 02167 define ("*", GLUE_170); 02168 define ("+", GLUE_171); 02169 define ("+", GLUE_172); 02170 define ("-", GLUE_173); 02171 define ("-", GLUE_174); 02172 define ("*", GLUE_175); 02173 define ("*", GLUE_176); 02174 define ("/", GLUE_177); 02175 define ("/", GLUE_178); 02176 define ("/", GLUE_179); 02177 define ("^", GLUE_180); 02178 define ("^", GLUE_181); 02179 define ("=", GLUE_182); 02180 define ("!=", GLUE_183); 02181 define ("=", GLUE_184); 02182 define ("!=", GLUE_185); 02183 define ("=", GLUE_186); 02184 define ("!=", GLUE_187); 02185 define ("modulus", GLUE_188); 02186 define_converter ("upgrade", GLUE_189, PENALTY_HOMOMORPHISM); 02187 define_converter (":>", GLUE_190, PENALTY_CAST); 02188 define ("modular", GLUE_191); 02189 define ("modular", GLUE_192); 02190 define ("mod", GLUE_193); 02191 define ("get_modulus", GLUE_194); 02192 define ("preimage", GLUE_195); 02193 define ("-", GLUE_196); 02194 define ("square", GLUE_197); 02195 define ("+", GLUE_198); 02196 define ("-", GLUE_199); 02197 define ("*", GLUE_200); 02198 define ("+", GLUE_201); 02199 define ("+", GLUE_202); 02200 define ("-", GLUE_203); 02201 define ("-", GLUE_204); 02202 define ("*", GLUE_205); 02203 define ("*", GLUE_206); 02204 define ("/", GLUE_207); 02205 define ("/", GLUE_208); 02206 define ("/", GLUE_209); 02207 define ("^", GLUE_210); 02208 define ("^", GLUE_211); 02209 define ("=", GLUE_212); 02210 define ("!=", GLUE_213); 02211 define ("=", GLUE_214); 02212 define ("!=", GLUE_215); 02213 define ("=", GLUE_216); 02214 define ("!=", GLUE_217); 02215 define_type<rational > (lit ("Rational")); 02216 define ("rational", GLUE_218); 02217 define ("rational", GLUE_219); 02218 define_converter ("upgrade", GLUE_220, PENALTY_INCLUSION); 02219 define_converter ("upgrade", GLUE_221, PENALTY_INCLUSION); 02220 define_converter ("upgrade", GLUE_222, PENALTY_INCLUSION); 02221 define ("/", GLUE_223); 02222 define ("numerator", GLUE_224); 02223 define ("denominator", GLUE_225); 02224 define ("integer?", GLUE_226); 02225 define ("-", GLUE_227); 02226 define ("square", GLUE_228); 02227 define ("+", GLUE_229); 02228 define ("-", GLUE_230); 02229 define ("*", GLUE_231); 02230 define ("/", GLUE_232); 02231 define ("+", GLUE_233); 02232 define ("-", GLUE_234); 02233 define ("*", GLUE_235); 02234 define ("/", GLUE_236); 02235 define ("+", GLUE_237); 02236 define ("-", GLUE_238); 02237 define ("*", GLUE_239); 02238 define ("/", GLUE_240); 02239 define ("^", GLUE_241); 02240 define ("^", GLUE_242); 02241 define ("div", GLUE_243); 02242 define ("divides?", GLUE_244); 02243 define ("gcd", GLUE_245); 02244 define ("lcm", GLUE_246); 02245 define ("=", GLUE_247); 02246 define ("!=", GLUE_248); 02247 define ("<", GLUE_249); 02248 define ("<=", GLUE_250); 02249 define (">", GLUE_251); 02250 define (">=", GLUE_252); 02251 define ("=", GLUE_253); 02252 define ("!=", GLUE_254); 02253 define ("<", GLUE_255); 02254 define ("<=", GLUE_256); 02255 define (">", GLUE_257); 02256 define (">=", GLUE_258); 02257 define ("=", GLUE_259); 02258 define ("!=", GLUE_260); 02259 define ("<", GLUE_261); 02260 define ("<=", GLUE_262); 02261 define (">", GLUE_263); 02262 define (">=", GLUE_264); 02263 define ("sign", GLUE_265); 02264 define ("abs", GLUE_266); 02265 define ("min", GLUE_267); 02266 define ("max", GLUE_268); 02267 define ("min", GLUE_269); 02268 define ("max", GLUE_270); 02269 define ("min", GLUE_271); 02270 define ("max", GLUE_272); 02271 define ("inf", GLUE_273); 02272 define ("sup", GLUE_274); 02273 define ("inf", GLUE_275); 02274 define ("sup", GLUE_276); 02275 define ("inf", GLUE_277); 02276 define ("sup", GLUE_278); 02277 define ("floor", GLUE_279); 02278 define ("ceil", GLUE_280); 02279 define ("trunc", GLUE_281); 02280 define ("round", GLUE_282); 02281 define ("reconstruct", GLUE_283); 02282 define ("reconstruct", GLUE_284); 02283 static alias<int> mmx_significant_digits_alias = global_alias (((int&) mmx_significant_digits)); 02284 define_constant<alias<int> > ("significant_digits", mmx_significant_digits_alias); 02285 static alias<int> mmx_bit_precision_alias = global_alias (((int&) mmx_bit_precision)); 02286 define_constant<alias<int> > ("bit_precision", mmx_bit_precision_alias); 02287 static alias<int> mmx_discrepancy_alias = global_alias (((int&) mmx_discrepancy)); 02288 define_constant<alias<int> > ("discrepancy", mmx_discrepancy_alias); 02289 static alias<bool> mmx_pretty_exponents_alias = global_alias (((bool&) mmx_pretty_exponents)); 02290 define_constant<alias<bool> > ("pretty_exponents", mmx_pretty_exponents_alias); 02291 define_type<mmx_floating > (lit ("Floating")); 02292 define ("literal_floating", GLUE_285); 02293 define_converter ("upgrade", GLUE_286, PENALTY_INCLUSION); 02294 define_converter ("upgrade", GLUE_287, PENALTY_INCLUSION); 02295 define_converter ("upgrade", GLUE_288, PENALTY_INCLUSION); 02296 define ("as_floating", GLUE_289); 02297 define ("as_floating", GLUE_290); 02298 define ("as_floating", GLUE_291); 02299 define ("as_floating", GLUE_292); 02300 define ("as_floating", GLUE_293); 02301 define ("as_int", GLUE_294); 02302 define ("as_double", GLUE_295); 02303 define ("as_integer", GLUE_296); 02304 define ("as_string", GLUE_297); 02305 define ("uniform_deviate", GLUE_298); 02306 define ("-", GLUE_299); 02307 define ("square", GLUE_300); 02308 define ("+", GLUE_301); 02309 define ("-", GLUE_302); 02310 define ("*", GLUE_303); 02311 define ("/", GLUE_304); 02312 define ("sqrt", GLUE_305); 02313 define ("^", GLUE_306); 02314 define ("exp", GLUE_307); 02315 define ("log", GLUE_308); 02316 define ("cos", GLUE_309); 02317 define ("sin", GLUE_310); 02318 define ("tan", GLUE_311); 02319 define ("arccos", GLUE_312); 02320 define ("arcsin", GLUE_313); 02321 define ("arctan", GLUE_314); 02322 define ("<", GLUE_315); 02323 define ("<=", GLUE_316); 02324 define (">", GLUE_317); 02325 define (">=", GLUE_318); 02326 define ("sign", GLUE_319); 02327 define ("abs", GLUE_320); 02328 define ("min", GLUE_321); 02329 define ("max", GLUE_322); 02330 define ("inf", GLUE_323); 02331 define ("sup", GLUE_324); 02332 define ("floor", GLUE_325); 02333 define ("ceil", GLUE_326); 02334 define ("trunc", GLUE_327); 02335 define ("round", GLUE_328); 02336 define ("finite?", GLUE_329); 02337 define ("infinite?", GLUE_330); 02338 define ("nan?", GLUE_331); 02339 define ("times_infinity", GLUE_332); 02340 define ("precision", GLUE_333); 02341 define ("change_precision", GLUE_334); 02342 define ("next_above", GLUE_335); 02343 define ("next_below", GLUE_336); 02344 define ("exponent", GLUE_337); 02345 define ("magnitude", GLUE_338); 02346 define ("increase_exponent", GLUE_339); 02347 define ("decrease_exponent", GLUE_340); 02348 define ("rounding_error", GLUE_341); 02349 define ("additive_error", GLUE_342); 02350 define ("multiplicative_error", GLUE_343); 02351 define ("elementary_error", GLUE_344); 02352 define_type<shape_axel > (lit ("Axel")); 02353 define ("axel", GLUE_345); 02354 define ("axel", GLUE_346); 02355 define ("view", GLUE_347); 02356 define_type<shape_point<rational> > (gen (lit ("Point"), lit ("Rational"))); 02357 define ("point", GLUE_348); 02358 define (".[]", GLUE_349); 02359 define (".[]", GLUE_350); 02360 define ("-", GLUE_351); 02361 define ("<<", GLUE_352); 02362 define_type<vector<integer> > (gen (lit ("Vector"), lit ("Integer"))); 02363 define_type<vector<rational> > (gen (lit ("Vector"), lit ("Rational"))); 02364 define ("vector", GLUE_353); 02365 define ("[]", GLUE_354); 02366 define_converter (":>", GLUE_355, PENALTY_CAST); 02367 define ("#", GLUE_356); 02368 define (".[]", GLUE_357); 02369 define (".[]", GLUE_358); 02370 define (".[]", GLUE_359); 02371 define ("reverse", GLUE_360); 02372 define ("><", GLUE_361); 02373 define ("<<", GLUE_362); 02374 define ("cons", GLUE_363); 02375 define ("car", GLUE_364); 02376 define ("cdr", GLUE_365); 02377 define ("nil?", GLUE_366); 02378 define ("atom?", GLUE_367); 02379 define ("insert", GLUE_368); 02380 define ("find", GLUE_369); 02381 define ("contains?", GLUE_370); 02382 define ("vector", GLUE_371); 02383 define ("[]", GLUE_372); 02384 define_converter (":>", GLUE_373, PENALTY_CAST); 02385 define ("#", GLUE_374); 02386 define (".[]", GLUE_375); 02387 define (".[]", GLUE_376); 02388 define (".[]", GLUE_377); 02389 define ("reverse", GLUE_378); 02390 define ("><", GLUE_379); 02391 define ("<<", GLUE_380); 02392 define ("cons", GLUE_381); 02393 define ("car", GLUE_382); 02394 define ("cdr", GLUE_383); 02395 define ("nil?", GLUE_384); 02396 define ("atom?", GLUE_385); 02397 define ("insert", GLUE_386); 02398 define ("find", GLUE_387); 02399 define ("contains?", GLUE_388); 02400 define_converter (":>", GLUE_389, PENALTY_PROMOTE_GENERIC); 02401 define_converter (":>", GLUE_390, PENALTY_INCLUSION); 02402 define_converter (":>", GLUE_391, PENALTY_PROMOTE_GENERIC); 02403 define ("+", GLUE_392); 02404 } 02405 }