shape_doc 0.1
/Users/mourrain/Devel/mmx/shape/glue/glue_point.cpp
Go to the documentation of this file.
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 }