shape_doc 0.1
|
00001 00002 #include <numerix/integer.hpp> 00003 #include <numerix/rational.hpp> 00004 #include <numerix/floating.hpp> 00005 #include <basix/vector.hpp> 00006 #include <shape/axel_glue.hpp> 00007 #include <shape/point_glue.hpp> 00008 #include <basix/literal.hpp> 00009 #include <basix/alias.hpp> 00010 #include <basix/tuple.hpp> 00011 #include <basix/glue.hpp> 00012 00013 #define shape_point shape::point 00014 00015 namespace mmx { 00016 static integer 00017 GLUE_1 (const literal &arg_1) { 00018 return make_literal_integer (arg_1); 00019 } 00020 00021 static generic 00022 GLUE_2 (const int &arg_1) { 00023 return integer_construct (arg_1); 00024 } 00025 00026 static integer 00027 GLUE_3 (const int &arg_1) { 00028 return integer (arg_1); 00029 } 00030 00031 static int 00032 GLUE_4 (const integer &arg_1) { 00033 return as_int (arg_1); 00034 } 00035 00036 static integer 00037 GLUE_5 (const int &arg_1) { 00038 return integer (arg_1); 00039 } 00040 00041 static integer 00042 GLUE_6 (const string &arg_1) { 00043 return integer (arg_1); 00044 } 00045 00046 static string 00047 GLUE_7 (const integer &arg_1) { 00048 return as_string (arg_1); 00049 } 00050 00051 static integer 00052 GLUE_8 (const integer &arg_1) { 00053 return -arg_1; 00054 } 00055 00056 static integer 00057 GLUE_9 (const integer &arg_1) { 00058 return square (arg_1); 00059 } 00060 00061 static integer 00062 GLUE_10 (const integer &arg_1, const integer &arg_2) { 00063 return arg_1 + arg_2; 00064 } 00065 00066 static integer 00067 GLUE_11 (const integer &arg_1, const integer &arg_2) { 00068 return arg_1 - arg_2; 00069 } 00070 00071 static integer 00072 GLUE_12 (const integer &arg_1, const integer &arg_2) { 00073 return arg_1 * arg_2; 00074 } 00075 00076 static integer 00077 GLUE_13 (const integer &arg_1, const integer &arg_2) { 00078 return arg_1 / arg_2; 00079 } 00080 00081 static integer 00082 GLUE_14 (const integer &arg_1, const integer &arg_2) { 00083 return quo (arg_1, arg_2); 00084 } 00085 00086 static integer 00087 GLUE_15 (const integer &arg_1, const integer &arg_2) { 00088 return rem (arg_1, arg_2); 00089 } 00090 00091 static bool 00092 GLUE_16 (const integer &arg_1, const integer &arg_2) { 00093 return divides (arg_1, arg_2); 00094 } 00095 00096 static integer 00097 GLUE_17 (const integer &arg_1, const integer &arg_2) { 00098 return gcd (arg_1, arg_2); 00099 } 00100 00101 static integer 00102 GLUE_18 (const integer &arg_1, const integer &arg_2) { 00103 return lcm (arg_1, arg_2); 00104 } 00105 00106 static bool 00107 GLUE_19 (const integer &arg_1, const integer &arg_2) { 00108 return arg_1 < arg_2; 00109 } 00110 00111 static bool 00112 GLUE_20 (const integer &arg_1, const integer &arg_2) { 00113 return arg_1 <= arg_2; 00114 } 00115 00116 static bool 00117 GLUE_21 (const integer &arg_1, const integer &arg_2) { 00118 return arg_1 > arg_2; 00119 } 00120 00121 static bool 00122 GLUE_22 (const integer &arg_1, const integer &arg_2) { 00123 return arg_1 >= arg_2; 00124 } 00125 00126 static integer 00127 GLUE_23 (const integer &arg_1) { 00128 return abs (arg_1); 00129 } 00130 00131 static integer 00132 GLUE_24 (const integer &arg_1, const integer &arg_2) { 00133 return min (arg_1, arg_2); 00134 } 00135 00136 static integer 00137 GLUE_25 (const integer &arg_1, const integer &arg_2) { 00138 return max (arg_1, arg_2); 00139 } 00140 00141 static integer 00142 GLUE_26 (const integer &arg_1) { 00143 return factorial (arg_1); 00144 } 00145 00146 static integer 00147 GLUE_27 (const integer &arg_1, const integer &arg_2) { 00148 return binomial (arg_1, arg_2); 00149 } 00150 00151 static bool 00152 GLUE_28 (const integer &arg_1) { 00153 return is_probable_prime (arg_1); 00154 } 00155 00156 static integer 00157 GLUE_29 (const integer &arg_1) { 00158 return probable_next_prime (arg_1); 00159 } 00160 00161 static integer 00162 GLUE_30 (const integer &arg_1, const integer &arg_2) { 00163 return arg_1 & arg_2; 00164 } 00165 00166 static integer 00167 GLUE_31 (const integer &arg_1, const integer &arg_2) { 00168 return arg_1 | arg_2; 00169 } 00170 00171 static integer 00172 GLUE_32 (const integer &arg_1, const integer &arg_2) { 00173 return arg_1 ^ arg_2; 00174 } 00175 00176 static integer 00177 GLUE_33 (const integer &arg_1) { 00178 return ~arg_1; 00179 } 00180 00181 static int 00182 GLUE_34 (const integer &arg_1) { 00183 return bit_size (arg_1); 00184 } 00185 00186 static bool 00187 GLUE_35 (const integer &arg_1, const int &arg_2) { 00188 return arg_1[arg_2]; 00189 } 00190 00191 static int 00192 GLUE_36 (const integer &arg_1) { 00193 return hamming_norm (arg_1); 00194 } 00195 00196 static int 00197 GLUE_37 (const integer &arg_1, const integer &arg_2) { 00198 return hamming_distance (arg_1, arg_2); 00199 } 00200 00201 static rational 00202 GLUE_38 (const integer &arg_1) { 00203 return rational (arg_1); 00204 } 00205 00206 static rational 00207 GLUE_39 (const integer &arg_1, const integer &arg_2) { 00208 return rational_new (arg_1, arg_2); 00209 } 00210 00211 static rational 00212 GLUE_40 (const integer &arg_1) { 00213 return rational (arg_1); 00214 } 00215 00216 static double 00217 GLUE_41 (const rational &arg_1) { 00218 return as_double (arg_1); 00219 } 00220 00221 static rational 00222 GLUE_42 (const integer &arg_1, const integer &arg_2) { 00223 return rational_new (arg_1, arg_2); 00224 } 00225 00226 static integer 00227 GLUE_43 (const rational &arg_1) { 00228 return numerator (arg_1); 00229 } 00230 00231 static integer 00232 GLUE_44 (const rational &arg_1) { 00233 return denominator (arg_1); 00234 } 00235 00236 static rational 00237 GLUE_45 (const rational &arg_1) { 00238 return -arg_1; 00239 } 00240 00241 static rational 00242 GLUE_46 (const rational &arg_1) { 00243 return square (arg_1); 00244 } 00245 00246 static rational 00247 GLUE_47 (const rational &arg_1, const rational &arg_2) { 00248 return arg_1 + arg_2; 00249 } 00250 00251 static rational 00252 GLUE_48 (const rational &arg_1, const rational &arg_2) { 00253 return arg_1 - arg_2; 00254 } 00255 00256 static rational 00257 GLUE_49 (const rational &arg_1, const rational &arg_2) { 00258 return arg_1 * arg_2; 00259 } 00260 00261 static rational 00262 GLUE_50 (const rational &arg_1, const rational &arg_2) { 00263 return arg_1 / arg_2; 00264 } 00265 00266 static generic 00267 GLUE_51 (const integer &arg_1, const integer &arg_2) { 00268 return integer_pow (arg_1, arg_2); 00269 } 00270 00271 static rational 00272 GLUE_52 (const rational &arg_1, const integer &arg_2) { 00273 return pow (arg_1, arg_2); 00274 } 00275 00276 static rational 00277 GLUE_53 (const rational &arg_1, const rational &arg_2) { 00278 return arg_1 / arg_2; 00279 } 00280 00281 static bool 00282 GLUE_54 (const rational &arg_1, const rational &arg_2) { 00283 return divides (arg_1, arg_2); 00284 } 00285 00286 static rational 00287 GLUE_55 (const rational &arg_1, const rational &arg_2) { 00288 return gcd (arg_1, arg_2); 00289 } 00290 00291 static rational 00292 GLUE_56 (const rational &arg_1, const rational &arg_2) { 00293 return lcm (arg_1, arg_2); 00294 } 00295 00296 static bool 00297 GLUE_57 (const rational &arg_1, const rational &arg_2) { 00298 return arg_1 < arg_2; 00299 } 00300 00301 static bool 00302 GLUE_58 (const rational &arg_1, const rational &arg_2) { 00303 return arg_1 <= arg_2; 00304 } 00305 00306 static bool 00307 GLUE_59 (const rational &arg_1, const rational &arg_2) { 00308 return arg_1 > arg_2; 00309 } 00310 00311 static bool 00312 GLUE_60 (const rational &arg_1, const rational &arg_2) { 00313 return arg_1 >= arg_2; 00314 } 00315 00316 static rational 00317 GLUE_61 (const rational &arg_1) { 00318 return abs (arg_1); 00319 } 00320 00321 static rational 00322 GLUE_62 (const rational &arg_1, const rational &arg_2) { 00323 return min (arg_1, arg_2); 00324 } 00325 00326 static rational 00327 GLUE_63 (const rational &arg_1, const rational &arg_2) { 00328 return max (arg_1, arg_2); 00329 } 00330 00331 static rational 00332 GLUE_64 (const rational &arg_1) { 00333 return floor (arg_1); 00334 } 00335 00336 static rational 00337 GLUE_65 (const rational &arg_1) { 00338 return ceil (arg_1); 00339 } 00340 00341 static rational 00342 GLUE_66 (const rational &arg_1) { 00343 return trunc (arg_1); 00344 } 00345 00346 static rational 00347 GLUE_67 (const rational &arg_1) { 00348 return round (arg_1); 00349 } 00350 00351 static mmx_floating 00352 GLUE_68 (const literal &arg_1) { 00353 return make_literal_floating (arg_1); 00354 } 00355 00356 static mmx_floating 00357 GLUE_69 (const int &arg_1) { 00358 return mmx_floating (arg_1); 00359 } 00360 00361 static mmx_floating 00362 GLUE_70 (const integer &arg_1) { 00363 return mmx_floating (arg_1); 00364 } 00365 00366 static mmx_floating 00367 GLUE_71 (const rational &arg_1) { 00368 return mmx_floating (arg_1); 00369 } 00370 00371 static mmx_floating 00372 GLUE_72 (const int &arg_1) { 00373 return mmx_floating (arg_1); 00374 } 00375 00376 static mmx_floating 00377 GLUE_73 (const double &arg_1) { 00378 return mmx_floating (arg_1); 00379 } 00380 00381 static mmx_floating 00382 GLUE_74 (const integer &arg_1) { 00383 return mmx_floating (arg_1); 00384 } 00385 00386 static mmx_floating 00387 GLUE_75 (const rational &arg_1) { 00388 return mmx_floating (arg_1); 00389 } 00390 00391 static mmx_floating 00392 GLUE_76 (const string &arg_1) { 00393 return mmx_floating (arg_1); 00394 } 00395 00396 static int 00397 GLUE_77 (const mmx_floating &arg_1) { 00398 return as_int (arg_1); 00399 } 00400 00401 static double 00402 GLUE_78 (const mmx_floating &arg_1) { 00403 return as_double (arg_1); 00404 } 00405 00406 static integer 00407 GLUE_79 (const mmx_floating &arg_1) { 00408 return as_integer (arg_1); 00409 } 00410 00411 static string 00412 GLUE_80 (const mmx_floating &arg_1) { 00413 return as_string (arg_1); 00414 } 00415 00416 static mmx_floating 00417 GLUE_81 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00418 return uniform_deviate (arg_1, arg_2); 00419 } 00420 00421 static mmx_floating 00422 GLUE_82 (const mmx_floating &arg_1) { 00423 return -arg_1; 00424 } 00425 00426 static mmx_floating 00427 GLUE_83 (const mmx_floating &arg_1) { 00428 return square (arg_1); 00429 } 00430 00431 static mmx_floating 00432 GLUE_84 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00433 return arg_1 + arg_2; 00434 } 00435 00436 static mmx_floating 00437 GLUE_85 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00438 return arg_1 - arg_2; 00439 } 00440 00441 static mmx_floating 00442 GLUE_86 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00443 return arg_1 * arg_2; 00444 } 00445 00446 static mmx_floating 00447 GLUE_87 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00448 return arg_1 / arg_2; 00449 } 00450 00451 static mmx_floating 00452 GLUE_88 (const mmx_floating &arg_1) { 00453 return sqrt (arg_1); 00454 } 00455 00456 static mmx_floating 00457 GLUE_89 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00458 return pow (arg_1, arg_2); 00459 } 00460 00461 static mmx_floating 00462 GLUE_90 (const mmx_floating &arg_1) { 00463 return exp (arg_1); 00464 } 00465 00466 static mmx_floating 00467 GLUE_91 (const mmx_floating &arg_1) { 00468 return log (arg_1); 00469 } 00470 00471 static mmx_floating 00472 GLUE_92 (const mmx_floating &arg_1) { 00473 return cos (arg_1); 00474 } 00475 00476 static mmx_floating 00477 GLUE_93 (const mmx_floating &arg_1) { 00478 return sin (arg_1); 00479 } 00480 00481 static mmx_floating 00482 GLUE_94 (const mmx_floating &arg_1) { 00483 return tan (arg_1); 00484 } 00485 00486 static mmx_floating 00487 GLUE_95 (const mmx_floating &arg_1) { 00488 return acos (arg_1); 00489 } 00490 00491 static mmx_floating 00492 GLUE_96 (const mmx_floating &arg_1) { 00493 return asin (arg_1); 00494 } 00495 00496 static mmx_floating 00497 GLUE_97 (const mmx_floating &arg_1) { 00498 return atan (arg_1); 00499 } 00500 00501 static bool 00502 GLUE_98 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00503 return arg_1 < arg_2; 00504 } 00505 00506 static bool 00507 GLUE_99 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00508 return arg_1 <= arg_2; 00509 } 00510 00511 static bool 00512 GLUE_100 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00513 return arg_1 > arg_2; 00514 } 00515 00516 static bool 00517 GLUE_101 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00518 return arg_1 >= arg_2; 00519 } 00520 00521 static mmx_floating 00522 GLUE_102 (const mmx_floating &arg_1) { 00523 return abs (arg_1); 00524 } 00525 00526 static mmx_floating 00527 GLUE_103 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00528 return min (arg_1, arg_2); 00529 } 00530 00531 static mmx_floating 00532 GLUE_104 (const mmx_floating &arg_1, const mmx_floating &arg_2) { 00533 return max (arg_1, arg_2); 00534 } 00535 00536 static mmx_floating 00537 GLUE_105 (const mmx_floating &arg_1) { 00538 return floor (arg_1); 00539 } 00540 00541 static mmx_floating 00542 GLUE_106 (const mmx_floating &arg_1) { 00543 return ceil (arg_1); 00544 } 00545 00546 static mmx_floating 00547 GLUE_107 (const mmx_floating &arg_1) { 00548 return trunc (arg_1); 00549 } 00550 00551 static mmx_floating 00552 GLUE_108 (const mmx_floating &arg_1) { 00553 return round (arg_1); 00554 } 00555 00556 static bool 00557 GLUE_109 (const mmx_floating &arg_1) { 00558 return is_finite (arg_1); 00559 } 00560 00561 static bool 00562 GLUE_110 (const mmx_floating &arg_1) { 00563 return is_infinite (arg_1); 00564 } 00565 00566 static bool 00567 GLUE_111 (const mmx_floating &arg_1) { 00568 return is_nan (arg_1); 00569 } 00570 00571 static mmx_floating 00572 GLUE_112 (const mmx_floating &arg_1) { 00573 return times_infinity (arg_1); 00574 } 00575 00576 static int 00577 GLUE_113 (const mmx_floating &arg_1) { 00578 return precision (arg_1); 00579 } 00580 00581 static mmx_floating 00582 GLUE_114 (const mmx_floating &arg_1) { 00583 return next_above (arg_1); 00584 } 00585 00586 static mmx_floating 00587 GLUE_115 (const mmx_floating &arg_1) { 00588 return next_below (arg_1); 00589 } 00590 00591 static int 00592 GLUE_116 (const mmx_floating &arg_1) { 00593 return exponent (arg_1); 00594 } 00595 00596 static double 00597 GLUE_117 (const mmx_floating &arg_1) { 00598 return magnitude (arg_1); 00599 } 00600 00601 static mmx_floating 00602 GLUE_118 (const mmx_floating &arg_1, const int &arg_2) { 00603 return incexp2 (arg_1, arg_2); 00604 } 00605 00606 static mmx_floating 00607 GLUE_119 (const mmx_floating &arg_1, const int &arg_2) { 00608 return decexp2 (arg_1, arg_2); 00609 } 00610 00611 static mmx_floating 00612 GLUE_120 (const mmx_floating &arg_1) { 00613 return rounding_error (arg_1); 00614 } 00615 00616 static mmx_floating 00617 GLUE_121 (const mmx_floating &arg_1) { 00618 return additive_error (arg_1); 00619 } 00620 00621 static mmx_floating 00622 GLUE_122 (const mmx_floating &arg_1) { 00623 return multiplicative_error (arg_1); 00624 } 00625 00626 static mmx_floating 00627 GLUE_123 (const mmx_floating &arg_1) { 00628 return elementary_error (arg_1); 00629 } 00630 00631 static bool 00632 GLUE_124 (const generic &arg_1) { 00633 return is_vector (arg_1); 00634 } 00635 00636 static vector<integer> 00637 GLUE_125 (const tuple<integer> &arg_1) { 00638 return vector<integer > (as_vector (arg_1)); 00639 } 00640 00641 static vector<integer> 00642 GLUE_126 (const tuple<integer> &arg_1) { 00643 return vector<integer > (as_vector (arg_1)); 00644 } 00645 00646 static iterator<generic> 00647 GLUE_127 (const vector<integer> &arg_1) { 00648 return as<iterator<generic> > (iterate (arg_1)); 00649 } 00650 00651 static int 00652 GLUE_128 (const vector<integer> &arg_1) { 00653 return N (arg_1); 00654 } 00655 00656 static integer 00657 GLUE_129 (const vector<integer> &arg_1, const int &arg_2) { 00658 return arg_1[arg_2]; 00659 } 00660 00661 static alias<integer> 00662 GLUE_130 (const alias<vector<integer> > &arg_1, const int &arg_2) { 00663 return alias_access<integer > (arg_1, arg_2); 00664 } 00665 00666 static vector<integer> 00667 GLUE_131 (const vector<integer> &arg_1, const int &arg_2, const int &arg_3) { 00668 return range (arg_1, arg_2, arg_3); 00669 } 00670 00671 static vector<integer> 00672 GLUE_132 (const vector<integer> &arg_1) { 00673 return reverse (arg_1); 00674 } 00675 00676 static vector<integer> 00677 GLUE_133 (const vector<integer> &arg_1, const vector<integer> &arg_2) { 00678 return append (arg_1, arg_2); 00679 } 00680 00681 static alias<vector<integer> > 00682 GLUE_134 (const alias<vector<integer> > &arg_1, const vector<integer> &arg_2) { 00683 return alias_write (arg_1, arg_2); 00684 } 00685 00686 static vector<integer> 00687 GLUE_135 (const integer &arg_1, const vector<integer> &arg_2) { 00688 return cons (arg_1, arg_2); 00689 } 00690 00691 static integer 00692 GLUE_136 (const vector<integer> &arg_1) { 00693 return car (arg_1); 00694 } 00695 00696 static vector<integer> 00697 GLUE_137 (const vector<integer> &arg_1) { 00698 return cdr (arg_1); 00699 } 00700 00701 static bool 00702 GLUE_138 (const vector<integer> &arg_1) { 00703 return is_nil (arg_1); 00704 } 00705 00706 static bool 00707 GLUE_139 (const vector<integer> &arg_1) { 00708 return is_atom (arg_1); 00709 } 00710 00711 static vector<integer> 00712 GLUE_140 (const vector<integer> &arg_1, const integer &arg_2) { 00713 return insert (arg_1, arg_2); 00714 } 00715 00716 static int 00717 GLUE_141 (const vector<integer> &arg_1, const integer &arg_2) { 00718 return find (arg_1, arg_2); 00719 } 00720 00721 static bool 00722 GLUE_142 (const vector<integer> &arg_1, const integer &arg_2) { 00723 return contains (arg_1, arg_2); 00724 } 00725 00726 static vector<rational> 00727 GLUE_143 (const tuple<rational> &arg_1) { 00728 return vector<rational > (as_vector (arg_1)); 00729 } 00730 00731 static vector<rational> 00732 GLUE_144 (const tuple<rational> &arg_1) { 00733 return vector<rational > (as_vector (arg_1)); 00734 } 00735 00736 static iterator<generic> 00737 GLUE_145 (const vector<rational> &arg_1) { 00738 return as<iterator<generic> > (iterate (arg_1)); 00739 } 00740 00741 static int 00742 GLUE_146 (const vector<rational> &arg_1) { 00743 return N (arg_1); 00744 } 00745 00746 static rational 00747 GLUE_147 (const vector<rational> &arg_1, const int &arg_2) { 00748 return arg_1[arg_2]; 00749 } 00750 00751 static alias<rational> 00752 GLUE_148 (const alias<vector<rational> > &arg_1, const int &arg_2) { 00753 return alias_access<rational > (arg_1, arg_2); 00754 } 00755 00756 static vector<rational> 00757 GLUE_149 (const vector<rational> &arg_1, const int &arg_2, const int &arg_3) { 00758 return range (arg_1, arg_2, arg_3); 00759 } 00760 00761 static vector<rational> 00762 GLUE_150 (const vector<rational> &arg_1) { 00763 return reverse (arg_1); 00764 } 00765 00766 static vector<rational> 00767 GLUE_151 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 00768 return append (arg_1, arg_2); 00769 } 00770 00771 static alias<vector<rational> > 00772 GLUE_152 (const alias<vector<rational> > &arg_1, const vector<rational> &arg_2) { 00773 return alias_write (arg_1, arg_2); 00774 } 00775 00776 static vector<rational> 00777 GLUE_153 (const rational &arg_1, const vector<rational> &arg_2) { 00778 return cons (arg_1, arg_2); 00779 } 00780 00781 static rational 00782 GLUE_154 (const vector<rational> &arg_1) { 00783 return car (arg_1); 00784 } 00785 00786 static vector<rational> 00787 GLUE_155 (const vector<rational> &arg_1) { 00788 return cdr (arg_1); 00789 } 00790 00791 static bool 00792 GLUE_156 (const vector<rational> &arg_1) { 00793 return is_nil (arg_1); 00794 } 00795 00796 static bool 00797 GLUE_157 (const vector<rational> &arg_1) { 00798 return is_atom (arg_1); 00799 } 00800 00801 static vector<rational> 00802 GLUE_158 (const vector<rational> &arg_1, const rational &arg_2) { 00803 return insert (arg_1, arg_2); 00804 } 00805 00806 static int 00807 GLUE_159 (const vector<rational> &arg_1, const rational &arg_2) { 00808 return find (arg_1, arg_2); 00809 } 00810 00811 static bool 00812 GLUE_160 (const vector<rational> &arg_1, const rational &arg_2) { 00813 return contains (arg_1, arg_2); 00814 } 00815 00816 static vector<integer> 00817 GLUE_161 (const vector<integer> &arg_1) { 00818 return -arg_1; 00819 } 00820 00821 static vector<integer> 00822 GLUE_162 (const vector<integer> &arg_1) { 00823 return square (arg_1); 00824 } 00825 00826 static vector<integer> 00827 GLUE_163 (const vector<integer> &arg_1, const vector<integer> &arg_2) { 00828 return arg_1 + arg_2; 00829 } 00830 00831 static vector<integer> 00832 GLUE_164 (const vector<integer> &arg_1, const vector<integer> &arg_2) { 00833 return arg_1 - arg_2; 00834 } 00835 00836 static vector<integer> 00837 GLUE_165 (const vector<integer> &arg_1, const vector<integer> &arg_2) { 00838 return arg_1 * arg_2; 00839 } 00840 00841 static vector<integer> 00842 GLUE_166 (const integer &arg_1, const vector<integer> &arg_2) { 00843 return arg_1 + arg_2; 00844 } 00845 00846 static vector<integer> 00847 GLUE_167 (const vector<integer> &arg_1, const integer &arg_2) { 00848 return arg_1 + arg_2; 00849 } 00850 00851 static vector<integer> 00852 GLUE_168 (const integer &arg_1, const vector<integer> &arg_2) { 00853 return arg_1 - arg_2; 00854 } 00855 00856 static vector<integer> 00857 GLUE_169 (const vector<integer> &arg_1, const integer &arg_2) { 00858 return arg_1 - arg_2; 00859 } 00860 00861 static vector<integer> 00862 GLUE_170 (const integer &arg_1, const vector<integer> &arg_2) { 00863 return arg_1 * arg_2; 00864 } 00865 00866 static vector<integer> 00867 GLUE_171 (const vector<integer> &arg_1, const integer &arg_2) { 00868 return arg_1 * arg_2; 00869 } 00870 00871 static integer 00872 GLUE_172 (const vector<integer> &arg_1, const vector<integer> &arg_2) { 00873 return dot (arg_1, arg_2); 00874 } 00875 00876 static integer 00877 GLUE_173 (const vector<integer> &arg_1) { 00878 return big_mul (arg_1); 00879 } 00880 00881 static integer 00882 GLUE_174 (const vector<integer> &arg_1) { 00883 return big_add (arg_1); 00884 } 00885 00886 static vector<rational> 00887 GLUE_175 (const vector<rational> &arg_1) { 00888 return -arg_1; 00889 } 00890 00891 static vector<rational> 00892 GLUE_176 (const vector<rational> &arg_1) { 00893 return square (arg_1); 00894 } 00895 00896 static vector<rational> 00897 GLUE_177 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 00898 return arg_1 + arg_2; 00899 } 00900 00901 static vector<rational> 00902 GLUE_178 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 00903 return arg_1 - arg_2; 00904 } 00905 00906 static vector<rational> 00907 GLUE_179 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 00908 return arg_1 * arg_2; 00909 } 00910 00911 static vector<rational> 00912 GLUE_180 (const rational &arg_1, const vector<rational> &arg_2) { 00913 return arg_1 + arg_2; 00914 } 00915 00916 static vector<rational> 00917 GLUE_181 (const vector<rational> &arg_1, const rational &arg_2) { 00918 return arg_1 + arg_2; 00919 } 00920 00921 static vector<rational> 00922 GLUE_182 (const rational &arg_1, const vector<rational> &arg_2) { 00923 return arg_1 - arg_2; 00924 } 00925 00926 static vector<rational> 00927 GLUE_183 (const vector<rational> &arg_1, const rational &arg_2) { 00928 return arg_1 - arg_2; 00929 } 00930 00931 static vector<rational> 00932 GLUE_184 (const rational &arg_1, const vector<rational> &arg_2) { 00933 return arg_1 * arg_2; 00934 } 00935 00936 static vector<rational> 00937 GLUE_185 (const vector<rational> &arg_1, const rational &arg_2) { 00938 return arg_1 * arg_2; 00939 } 00940 00941 static rational 00942 GLUE_186 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 00943 return dot (arg_1, arg_2); 00944 } 00945 00946 static rational 00947 GLUE_187 (const vector<rational> &arg_1) { 00948 return big_mul (arg_1); 00949 } 00950 00951 static rational 00952 GLUE_188 (const vector<rational> &arg_1) { 00953 return big_add (arg_1); 00954 } 00955 00956 static vector<rational> 00957 GLUE_189 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 00958 return arg_1 / arg_2; 00959 } 00960 00961 static vector<rational> 00962 GLUE_190 (const rational &arg_1, const vector<rational> &arg_2) { 00963 return arg_1 / arg_2; 00964 } 00965 00966 static vector<rational> 00967 GLUE_191 (const vector<rational> &arg_1, const rational &arg_2) { 00968 return arg_1 / arg_2; 00969 } 00970 00971 static bool 00972 GLUE_192 (const vector<integer> &arg_1, const vector<integer> &arg_2) { 00973 return arg_1 <= arg_2; 00974 } 00975 00976 static bool 00977 GLUE_193 (const vector<integer> &arg_1, const vector<integer> &arg_2) { 00978 return arg_1 >= arg_2; 00979 } 00980 00981 static bool 00982 GLUE_194 (const vector<integer> &arg_1, const vector<integer> &arg_2) { 00983 return arg_1 < arg_2; 00984 } 00985 00986 static bool 00987 GLUE_195 (const vector<integer> &arg_1, const vector<integer> &arg_2) { 00988 return arg_1 > arg_2; 00989 } 00990 00991 static bool 00992 GLUE_196 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 00993 return arg_1 <= arg_2; 00994 } 00995 00996 static bool 00997 GLUE_197 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 00998 return arg_1 >= arg_2; 00999 } 01000 01001 static bool 01002 GLUE_198 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 01003 return arg_1 < arg_2; 01004 } 01005 01006 static bool 01007 GLUE_199 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 01008 return arg_1 > arg_2; 01009 } 01010 01011 static vector<rational> 01012 GLUE_200 (const vector<rational> &arg_1) { 01013 return abs (arg_1); 01014 } 01015 01016 static vector<rational> 01017 GLUE_201 (const vector<integer> &arg_1) { 01018 return as<vector<rational> > (arg_1); 01019 } 01020 01021 static shape_axel 01022 GLUE_202 () { 01023 return shape_axel (); 01024 } 01025 01026 static shape_axel 01027 GLUE_203 (const string &arg_1) { 01028 return shape_axel_string (arg_1); 01029 } 01030 01031 static void 01032 GLUE_204 (const shape_axel &arg_1) { 01033 shape_axel_view (arg_1); 01034 } 01035 01036 static shape_point<rational> 01037 GLUE_205 (const tuple<rational> &arg_1) { 01038 return shape_point_tuple<rational > (as_vector (arg_1)); 01039 } 01040 01041 static rational 01042 GLUE_206 (const shape_point<rational> &arg_1, const int &arg_2) { 01043 return arg_1[arg_2]; 01044 } 01045 01046 static alias<rational> 01047 GLUE_207 (const alias<shape_point<rational> > &arg_1, const int &arg_2) { 01048 return alias_access<rational > (arg_1, arg_2); 01049 } 01050 01051 static vector<rational> 01052 GLUE_208 (const shape_point<rational> &arg_1, const shape_point<rational> &arg_2) { 01053 return arg_1 - arg_2; 01054 } 01055 01056 static shape_point<rational> 01057 GLUE_209 (const shape_point<rational> &arg_1, const vector<rational> &arg_2) { 01058 return arg_1 + arg_2; 01059 } 01060 01061 static alias<shape_axel> 01062 GLUE_210 (const alias<shape_axel> &arg_1, const shape_point<rational> &arg_2) { 01063 return alias_write (arg_1, arg_2); 01064 } 01065 01066 void 01067 glue_point () { 01068 static bool done = false; 01069 if (done) return; 01070 done = true; 01071 define_type<integer > (lit ("Integer")); 01072 define ("literal_integer", GLUE_1); 01073 define_constructor<int > (GLUE_2); 01074 define ("integer", GLUE_3); 01075 define_converter ("upgrade", GLUE_4, PENALTY_INCLUSION); 01076 define_converter (":>", GLUE_5, PENALTY_CAST); 01077 define ("as_integer", GLUE_6); 01078 define ("as_string", GLUE_7); 01079 define ("-", GLUE_8); 01080 define ("square", GLUE_9); 01081 define ("+", GLUE_10); 01082 define ("-", GLUE_11); 01083 define ("*", GLUE_12); 01084 define ("div", GLUE_13); 01085 define ("quo", GLUE_14); 01086 define ("rem", GLUE_15); 01087 define ("divides?", GLUE_16); 01088 define ("gcd", GLUE_17); 01089 define ("lcm", GLUE_18); 01090 define ("<", GLUE_19); 01091 define ("<=", GLUE_20); 01092 define (">", GLUE_21); 01093 define (">=", GLUE_22); 01094 define ("abs", GLUE_23); 01095 define ("min", GLUE_24); 01096 define ("max", GLUE_25); 01097 define (".!", GLUE_26); 01098 define ("binomial", GLUE_27); 01099 define ("probable_prime?", GLUE_28); 01100 define ("probable_next_prime", GLUE_29); 01101 define ("/\\", GLUE_30); 01102 define ("\\/", GLUE_31); 01103 define ("xor", GLUE_32); 01104 define ("!", GLUE_33); 01105 define ("#", GLUE_34); 01106 define (".[]", GLUE_35); 01107 define ("hamming_norm", GLUE_36); 01108 define ("hamming_distance", GLUE_37); 01109 define_type<rational > (lit ("Rational")); 01110 define ("rational", GLUE_38); 01111 define ("rational", GLUE_39); 01112 define_converter ("upgrade", GLUE_40, PENALTY_INCLUSION); 01113 define_converter ("upgrade", GLUE_41, PENALTY_INCLUSION); 01114 define ("/", GLUE_42); 01115 define ("numerator", GLUE_43); 01116 define ("denominator", GLUE_44); 01117 define ("-", GLUE_45); 01118 define ("square", GLUE_46); 01119 define ("+", GLUE_47); 01120 define ("-", GLUE_48); 01121 define ("*", GLUE_49); 01122 define ("/", GLUE_50); 01123 define ("^", GLUE_51); 01124 define ("^", GLUE_52); 01125 define ("div", GLUE_53); 01126 define ("divides?", GLUE_54); 01127 define ("gcd", GLUE_55); 01128 define ("lcm", GLUE_56); 01129 define ("<", GLUE_57); 01130 define ("<=", GLUE_58); 01131 define (">", GLUE_59); 01132 define (">=", GLUE_60); 01133 define ("abs", GLUE_61); 01134 define ("min", GLUE_62); 01135 define ("max", GLUE_63); 01136 define ("floor", GLUE_64); 01137 define ("ceil", GLUE_65); 01138 define ("trunc", GLUE_66); 01139 define ("round", GLUE_67); 01140 static alias<int> mmx_significant_digits_alias = global_alias (((int&) mmx_significant_digits)); 01141 define_constant<alias<int> > ("significant_digits", mmx_significant_digits_alias); 01142 static alias<int> mmx_bit_precision_alias = global_alias (((int&) mmx_bit_precision)); 01143 define_constant<alias<int> > ("bit_precision", mmx_bit_precision_alias); 01144 static alias<int> mmx_discrepancy_alias = global_alias (((int&) mmx_discrepancy)); 01145 define_constant<alias<int> > ("discrepancy", mmx_discrepancy_alias); 01146 static alias<bool> mmx_pretty_exponents_alias = global_alias (((bool&) mmx_pretty_exponents)); 01147 define_constant<alias<bool> > ("pretty_exponents", mmx_pretty_exponents_alias); 01148 define_type<mmx_floating > (lit ("Floating")); 01149 define ("literal_floating", GLUE_68); 01150 define_converter ("upgrade", GLUE_69, PENALTY_INCLUSION); 01151 define_converter ("upgrade", GLUE_70, PENALTY_INCLUSION); 01152 define_converter ("upgrade", GLUE_71, PENALTY_INCLUSION); 01153 define ("as_floating", GLUE_72); 01154 define ("as_floating", GLUE_73); 01155 define ("as_floating", GLUE_74); 01156 define ("as_floating", GLUE_75); 01157 define ("as_floating", GLUE_76); 01158 define ("as_int", GLUE_77); 01159 define ("as_double", GLUE_78); 01160 define ("as_integer", GLUE_79); 01161 define ("as_string", GLUE_80); 01162 define ("uniform_deviate", GLUE_81); 01163 define ("-", GLUE_82); 01164 define ("square", GLUE_83); 01165 define ("+", GLUE_84); 01166 define ("-", GLUE_85); 01167 define ("*", GLUE_86); 01168 define ("/", GLUE_87); 01169 define ("sqrt", GLUE_88); 01170 define ("^", GLUE_89); 01171 define ("exp", GLUE_90); 01172 define ("log", GLUE_91); 01173 define ("cos", GLUE_92); 01174 define ("sin", GLUE_93); 01175 define ("tan", GLUE_94); 01176 define ("arccos", GLUE_95); 01177 define ("arcsin", GLUE_96); 01178 define ("arctan", GLUE_97); 01179 define ("<", GLUE_98); 01180 define ("<=", GLUE_99); 01181 define (">", GLUE_100); 01182 define (">=", GLUE_101); 01183 define ("abs", GLUE_102); 01184 define ("min", GLUE_103); 01185 define ("max", GLUE_104); 01186 define ("floor", GLUE_105); 01187 define ("ceil", GLUE_106); 01188 define ("trunc", GLUE_107); 01189 define ("round", GLUE_108); 01190 define ("finite?", GLUE_109); 01191 define ("infinite?", GLUE_110); 01192 define ("nan?", GLUE_111); 01193 define ("times_infinity", GLUE_112); 01194 define ("precision", GLUE_113); 01195 define ("next_above", GLUE_114); 01196 define ("next_below", GLUE_115); 01197 define ("exponent", GLUE_116); 01198 define ("magnitude", GLUE_117); 01199 define ("increase_exponent", GLUE_118); 01200 define ("decrease_exponent", GLUE_119); 01201 define ("rounding_error", GLUE_120); 01202 define ("additive_error", GLUE_121); 01203 define ("multiplicative_error", GLUE_122); 01204 define ("elementary_error", GLUE_123); 01205 define_type<vector<integer> > (gen (lit ("Vector"), lit ("Integer"))); 01206 define_type<vector<rational> > (gen (lit ("Vector"), lit ("Rational"))); 01207 define ("vector?", GLUE_124); 01208 define ("vector", GLUE_125); 01209 define ("[]", GLUE_126); 01210 define_converter (":>", GLUE_127, PENALTY_CAST); 01211 define ("#", GLUE_128); 01212 define (".[]", GLUE_129); 01213 define (".[]", GLUE_130); 01214 define (".[]", GLUE_131); 01215 define ("reverse", GLUE_132); 01216 define ("><", GLUE_133); 01217 define ("<<", GLUE_134); 01218 define ("cons", GLUE_135); 01219 define ("car", GLUE_136); 01220 define ("cdr", GLUE_137); 01221 define ("nil?", GLUE_138); 01222 define ("atom?", GLUE_139); 01223 define ("insert", GLUE_140); 01224 define ("find", GLUE_141); 01225 define ("contains?", GLUE_142); 01226 define ("vector", GLUE_143); 01227 define ("[]", GLUE_144); 01228 define_converter (":>", GLUE_145, PENALTY_CAST); 01229 define ("#", GLUE_146); 01230 define (".[]", GLUE_147); 01231 define (".[]", GLUE_148); 01232 define (".[]", GLUE_149); 01233 define ("reverse", GLUE_150); 01234 define ("><", GLUE_151); 01235 define ("<<", GLUE_152); 01236 define ("cons", GLUE_153); 01237 define ("car", GLUE_154); 01238 define ("cdr", GLUE_155); 01239 define ("nil?", GLUE_156); 01240 define ("atom?", GLUE_157); 01241 define ("insert", GLUE_158); 01242 define ("find", GLUE_159); 01243 define ("contains?", GLUE_160); 01244 define ("-", GLUE_161); 01245 define ("square", GLUE_162); 01246 define ("+", GLUE_163); 01247 define ("-", GLUE_164); 01248 define ("*", GLUE_165); 01249 define ("+", GLUE_166); 01250 define ("+", GLUE_167); 01251 define ("-", GLUE_168); 01252 define ("-", GLUE_169); 01253 define ("*", GLUE_170); 01254 define ("*", GLUE_171); 01255 define ("dot", GLUE_172); 01256 define ("big_mul", GLUE_173); 01257 define ("big_add", GLUE_174); 01258 define ("-", GLUE_175); 01259 define ("square", GLUE_176); 01260 define ("+", GLUE_177); 01261 define ("-", GLUE_178); 01262 define ("*", GLUE_179); 01263 define ("+", GLUE_180); 01264 define ("+", GLUE_181); 01265 define ("-", GLUE_182); 01266 define ("-", GLUE_183); 01267 define ("*", GLUE_184); 01268 define ("*", GLUE_185); 01269 define ("dot", GLUE_186); 01270 define ("big_mul", GLUE_187); 01271 define ("big_add", GLUE_188); 01272 define ("/", GLUE_189); 01273 define ("/", GLUE_190); 01274 define ("/", GLUE_191); 01275 define ("<=", GLUE_192); 01276 define (">=", GLUE_193); 01277 define ("<", GLUE_194); 01278 define (">", GLUE_195); 01279 define ("<=", GLUE_196); 01280 define (">=", GLUE_197); 01281 define ("<", GLUE_198); 01282 define (">", GLUE_199); 01283 define ("abs", GLUE_200); 01284 define_converter (":>", GLUE_201, PENALTY_INCLUSION); 01285 define_type<shape_axel > (lit ("Axel")); 01286 define ("axel", GLUE_202); 01287 define ("axel", GLUE_203); 01288 define ("view", GLUE_204); 01289 define_type<shape_point<rational> > (gen (lit ("Point"), lit ("Rational"))); 01290 define ("point", GLUE_205); 01291 define (".[]", GLUE_206); 01292 define (".[]", GLUE_207); 01293 define ("-", GLUE_208); 01294 define ("+", GLUE_209); 01295 define ("<<", GLUE_210); 01296 } 01297 }