algebramix_doc 0.3
/Users/mourrain/Devel/mmx/algebramix/glue/glue_matrix_rational.cpp
Go to the documentation of this file.
00001 
00002 #include <numerix/integer.hpp>
00003 #include <numerix/rational.hpp>
00004 #include <numerix/complex.hpp>
00005 #include <basix/vector.hpp>
00006 #include <basix/int.hpp>
00007 #include <algebramix/vector_unrolled.hpp>
00008 #include <algebramix/vector_simd.hpp>
00009 #include <algebramix/permutation.hpp>
00010 #include <basix/row_tuple.hpp>
00011 #include <algebramix/matrix.hpp>
00012 #include <algebramix/matrix_ring_naive.hpp>
00013 #include <algebramix/matrix_integer.hpp>
00014 #include <algebramix/matrix_quotient.hpp>
00015 #include <algebramix/matrix_complex.hpp>
00016 #include <basix/tuple.hpp>
00017 #include <basix/alias.hpp>
00018 #include <basix/glue.hpp>
00019 
00020 #define int_literal(x) as_int (as_string (x))
00021 #define identity_matrix_integer identity_matrix<integer>
00022 #define hilbert_matrix_rational hilbert_matrix<rational>
00023 
00024 namespace mmx {
00025   template<typename C> matrix<C>
00026   matrix_new (const vector<row_tuple<C> >& t) {
00027     if (N(t) == 0) return matrix<C> ();
00028     nat i, j, rows= N(t), cols= N(t[0]);
00029     C dummy= 0;
00030     matrix<C> r (dummy, rows, cols);
00031     for (i=0; i<rows; i++) {
00032       ASSERT (N(t[i]) == cols, "unequal row lengths");
00033       for (j=0; j<cols; j++)
00034         r(i,j)= t[i][j];
00035     }
00036     return r;
00037   }
00038 
00039   template<typename C> matrix<C>
00040   matrix_new (const vector<C>& t) {
00041     nat j, rows= 1, cols= N(t);
00042     C dummy= 0;
00043     matrix<C> r (dummy, rows, cols);
00044     for (j=0; j<cols; j++)
00045       r(0,j)= t[j];
00046     return r;
00047   }
00048 
00049   template<typename C> vector<generic>
00050   wrap_column_reduced_echelon_with_permutation (const matrix<C>& m) {
00051     permutation permut;
00052     generic tp=as<generic> (column_reduced_echelon (m, permut));
00053     return vec (tp, as<generic> (permut));
00054   }
00055 
00056   template<typename C> vector<generic>
00057   wrap_column_reduced_echelon_with_transform (const matrix<C>& m) {
00058     matrix<C> k;
00059     generic tp=as<generic> (column_reduced_echelon (m, k));
00060     return vec (tp, as<generic> (k));
00061   }
00062 
00063   template<typename C> vector<generic>
00064   wrap_row_reduced_echelon_with_transform (const matrix<C>& m) {
00065     matrix<C> k;
00066     generic tp=as<generic> (row_reduced_echelon (m, k));
00067     return vec (tp, as<generic> (k));
00068   }
00069 }
00070 
00071 
00072 namespace mmx {
00073   static vector<rational>
00074   GLUE_1 (const vector<int> &arg_1) {
00075     return as<vector<rational> > (arg_1);
00076   }
00077   
00078   static vector<complex<rational> >
00079   GLUE_2 (const vector<int> &arg_1) {
00080     return as<vector<complex<rational> > > (arg_1);
00081   }
00082   
00083   static matrix<rational>
00084   GLUE_3 (const int &arg_1) {
00085     return hilbert_matrix_rational (arg_1);
00086   }
00087   
00088   static row_tuple<rational>
00089   GLUE_4 (const tuple<rational> &arg_1) {
00090     return row_tuple<rational > (as_vector (arg_1));
00091   }
00092   
00093   static matrix<rational>
00094   GLUE_5 (const tuple<rational> &arg_1) {
00095     return matrix_new (as_vector (arg_1));
00096   }
00097   
00098   static matrix<rational>
00099   GLUE_6 (const tuple<row_tuple<rational> > &arg_1) {
00100     return matrix_new (as_vector (arg_1));
00101   }
00102   
00103   static matrix<rational>
00104   GLUE_7 (const tuple<row_tuple<rational> > &arg_1) {
00105     return matrix_new (as_vector (arg_1));
00106   }
00107   
00108   static int
00109   GLUE_8 (const matrix<rational> &arg_1) {
00110     return N (arg_1);
00111   }
00112   
00113   static int
00114   GLUE_9 (const matrix<rational> &arg_1) {
00115     return rows (arg_1);
00116   }
00117   
00118   static int
00119   GLUE_10 (const matrix<rational> &arg_1) {
00120     return cols (arg_1);
00121   }
00122   
00123   static rational
00124   GLUE_11 (const matrix<rational> &arg_1, const int &arg_2, const int &arg_3) {
00125     return arg_1 (arg_2, arg_3);
00126   }
00127   
00128   static alias<rational>
00129   GLUE_12 (const alias<matrix<rational> > &arg_1, const int &arg_2, const int &arg_3) {
00130     return alias_access<rational > (arg_1, arg_2, arg_3);
00131   }
00132   
00133   static matrix<rational>
00134   GLUE_13 (const matrix<rational> &arg_1, const int &arg_2, const int &arg_3, const int &arg_4, const int &arg_5) {
00135     return range (arg_1, arg_2, arg_3, arg_4, arg_5);
00136   }
00137   
00138   static vector<rational>
00139   GLUE_14 (const matrix<rational> &arg_1, const int &arg_2) {
00140     return row (arg_1, arg_2);
00141   }
00142   
00143   static vector<rational>
00144   GLUE_15 (const matrix<rational> &arg_1, const int &arg_2) {
00145     return column (arg_1, arg_2);
00146   }
00147   
00148   static matrix<rational>
00149   GLUE_16 (const matrix<rational> &arg_1) {
00150     return transpose (arg_1);
00151   }
00152   
00153   static matrix<rational>
00154   GLUE_17 (const matrix<rational> &arg_1, const matrix<rational> &arg_2) {
00155     return horizontal_join (arg_1, arg_2);
00156   }
00157   
00158   static matrix<rational>
00159   GLUE_18 (const matrix<rational> &arg_1, const matrix<rational> &arg_2) {
00160     return vertical_join (arg_1, arg_2);
00161   }
00162   
00163   static row_tuple<complex<rational> >
00164   GLUE_19 (const tuple<complex<rational> > &arg_1) {
00165     return row_tuple<complex<rational> > (as_vector (arg_1));
00166   }
00167   
00168   static matrix<complex<rational> >
00169   GLUE_20 (const tuple<complex<rational> > &arg_1) {
00170     return matrix_new (as_vector (arg_1));
00171   }
00172   
00173   static matrix<complex<rational> >
00174   GLUE_21 (const tuple<row_tuple<complex<rational> > > &arg_1) {
00175     return matrix_new (as_vector (arg_1));
00176   }
00177   
00178   static matrix<complex<rational> >
00179   GLUE_22 (const tuple<row_tuple<complex<rational> > > &arg_1) {
00180     return matrix_new (as_vector (arg_1));
00181   }
00182   
00183   static int
00184   GLUE_23 (const matrix<complex<rational> > &arg_1) {
00185     return N (arg_1);
00186   }
00187   
00188   static int
00189   GLUE_24 (const matrix<complex<rational> > &arg_1) {
00190     return rows (arg_1);
00191   }
00192   
00193   static int
00194   GLUE_25 (const matrix<complex<rational> > &arg_1) {
00195     return cols (arg_1);
00196   }
00197   
00198   static complex<rational>
00199   GLUE_26 (const matrix<complex<rational> > &arg_1, const int &arg_2, const int &arg_3) {
00200     return arg_1 (arg_2, arg_3);
00201   }
00202   
00203   static alias<complex<rational> >
00204   GLUE_27 (const alias<matrix<complex<rational> > > &arg_1, const int &arg_2, const int &arg_3) {
00205     return alias_access<complex<rational> > (arg_1, arg_2, arg_3);
00206   }
00207   
00208   static matrix<complex<rational> >
00209   GLUE_28 (const matrix<complex<rational> > &arg_1, const int &arg_2, const int &arg_3, const int &arg_4, const int &arg_5) {
00210     return range (arg_1, arg_2, arg_3, arg_4, arg_5);
00211   }
00212   
00213   static vector<complex<rational> >
00214   GLUE_29 (const matrix<complex<rational> > &arg_1, const int &arg_2) {
00215     return row (arg_1, arg_2);
00216   }
00217   
00218   static vector<complex<rational> >
00219   GLUE_30 (const matrix<complex<rational> > &arg_1, const int &arg_2) {
00220     return column (arg_1, arg_2);
00221   }
00222   
00223   static matrix<complex<rational> >
00224   GLUE_31 (const matrix<complex<rational> > &arg_1) {
00225     return transpose (arg_1);
00226   }
00227   
00228   static matrix<complex<rational> >
00229   GLUE_32 (const matrix<complex<rational> > &arg_1, const matrix<complex<rational> > &arg_2) {
00230     return horizontal_join (arg_1, arg_2);
00231   }
00232   
00233   static matrix<complex<rational> >
00234   GLUE_33 (const matrix<complex<rational> > &arg_1, const matrix<complex<rational> > &arg_2) {
00235     return vertical_join (arg_1, arg_2);
00236   }
00237   
00238   static matrix<rational>
00239   GLUE_34 (const rational &arg_1, const int &arg_2, const int &arg_3) {
00240     return fill_matrix (arg_1, arg_2, arg_3);
00241   }
00242   
00243   static matrix<rational>
00244   GLUE_35 (const rational &arg_1, const int &arg_2) {
00245     return jordan_matrix (arg_1, arg_2);
00246   }
00247   
00248   static matrix<rational>
00249   GLUE_36 (const vector<rational> &arg_1) {
00250     return toeplitz_matrix (arg_1);
00251   }
00252   
00253   static matrix<rational>
00254   GLUE_37 (const vector<rational> &arg_1) {
00255     return hankel_matrix (arg_1);
00256   }
00257   
00258   static matrix<rational>
00259   GLUE_38 (const vector<rational> &arg_1, const vector<rational> &arg_2) {
00260     return tensor_matrix (arg_1, arg_2);
00261   }
00262   
00263   static matrix<rational>
00264   GLUE_39 (const vector<rational> &arg_1) {
00265     return vandermonde (arg_1);
00266   }
00267   
00268   static matrix<rational>
00269   GLUE_40 (const matrix<rational> &arg_1) {
00270     return -arg_1;
00271   }
00272   
00273   static matrix<rational>
00274   GLUE_41 (const matrix<rational> &arg_1) {
00275     return square (arg_1);
00276   }
00277   
00278   static matrix<rational>
00279   GLUE_42 (const matrix<rational> &arg_1, const matrix<rational> &arg_2) {
00280     return arg_1 + arg_2;
00281   }
00282   
00283   static matrix<rational>
00284   GLUE_43 (const matrix<rational> &arg_1, const matrix<rational> &arg_2) {
00285     return arg_1 - arg_2;
00286   }
00287   
00288   static matrix<rational>
00289   GLUE_44 (const matrix<rational> &arg_1, const matrix<rational> &arg_2) {
00290     return arg_1 * arg_2;
00291   }
00292   
00293   static matrix<rational>
00294   GLUE_45 (const rational &arg_1, const matrix<rational> &arg_2) {
00295     return arg_1 + arg_2;
00296   }
00297   
00298   static matrix<rational>
00299   GLUE_46 (const matrix<rational> &arg_1, const rational &arg_2) {
00300     return arg_1 + arg_2;
00301   }
00302   
00303   static matrix<rational>
00304   GLUE_47 (const rational &arg_1, const matrix<rational> &arg_2) {
00305     return arg_1 - arg_2;
00306   }
00307   
00308   static matrix<rational>
00309   GLUE_48 (const matrix<rational> &arg_1, const rational &arg_2) {
00310     return arg_1 - arg_2;
00311   }
00312   
00313   static matrix<rational>
00314   GLUE_49 (const rational &arg_1, const matrix<rational> &arg_2) {
00315     return arg_1 * arg_2;
00316   }
00317   
00318   static matrix<rational>
00319   GLUE_50 (const matrix<rational> &arg_1, const rational &arg_2) {
00320     return arg_1 * arg_2;
00321   }
00322   
00323   static vector<rational>
00324   GLUE_51 (const matrix<rational> &arg_1, const vector<rational> &arg_2) {
00325     return arg_1 * arg_2;
00326   }
00327   
00328   static vector<rational>
00329   GLUE_52 (const vector<rational> &arg_1, const matrix<rational> &arg_2) {
00330     return arg_1 * arg_2;
00331   }
00332   
00333   static matrix<rational>
00334   GLUE_53 (const rational &arg_1, const matrix<rational> &arg_2) {
00335     return arg_1 / arg_2;
00336   }
00337   
00338   static matrix<rational>
00339   GLUE_54 (const matrix<rational> &arg_1, const rational &arg_2) {
00340     return arg_1 / arg_2;
00341   }
00342   
00343   static matrix<rational>
00344   GLUE_55 (const matrix<rational> &arg_1, const matrix<rational> &arg_2) {
00345     return krylov (arg_1, arg_2);
00346   }
00347   
00348   static rational
00349   GLUE_56 (const matrix<rational> &arg_1) {
00350     return det (arg_1);
00351   }
00352   
00353   static matrix<rational>
00354   GLUE_57 (const matrix<rational> &arg_1) {
00355     return row_echelon (arg_1);
00356   }
00357   
00358   static matrix<rational>
00359   GLUE_58 (const matrix<rational> &arg_1) {
00360     return column_echelon (arg_1);
00361   }
00362   
00363   static matrix<rational>
00364   GLUE_59 (const matrix<rational> &arg_1) {
00365     return row_reduced_echelon (arg_1);
00366   }
00367   
00368   static matrix<rational>
00369   GLUE_60 (const matrix<rational> &arg_1) {
00370     return column_reduced_echelon (arg_1);
00371   }
00372   
00373   static vector<generic>
00374   GLUE_61 (const matrix<rational> &arg_1) {
00375     return wrap_row_reduced_echelon_with_transform (arg_1);
00376   }
00377   
00378   static vector<generic>
00379   GLUE_62 (const matrix<rational> &arg_1) {
00380     return wrap_column_reduced_echelon_with_transform (arg_1);
00381   }
00382   
00383   static vector<generic>
00384   GLUE_63 (const matrix<rational> &arg_1) {
00385     return wrap_column_reduced_echelon_with_permutation (arg_1);
00386   }
00387   
00388   static matrix<rational>
00389   GLUE_64 (const matrix<rational> &arg_1) {
00390     return kernel (arg_1);
00391   }
00392   
00393   static matrix<rational>
00394   GLUE_65 (const matrix<rational> &arg_1) {
00395     return image (arg_1);
00396   }
00397   
00398   static int
00399   GLUE_66 (const matrix<rational> &arg_1) {
00400     return rank (arg_1);
00401   }
00402   
00403   static matrix<rational>
00404   GLUE_67 (const matrix<rational> &arg_1) {
00405     return invert (arg_1);
00406   }
00407   
00408   static matrix<rational>
00409   GLUE_68 (const matrix<rational> &arg_1) {
00410     return abs (arg_1);
00411   }
00412   
00413   static row_tuple<rational>
00414   GLUE_69 (const row_tuple<integer> &arg_1) {
00415     return as<row_tuple<rational> > (arg_1);
00416   }
00417   
00418   static matrix<rational>
00419   GLUE_70 (const matrix<integer> &arg_1) {
00420     return as<matrix<rational> > (arg_1);
00421   }
00422   
00423   static row_tuple<complex<rational> >
00424   GLUE_71 (const row_tuple<integer> &arg_1) {
00425     return as<row_tuple<complex<rational> > > (arg_1);
00426   }
00427   
00428   static matrix<complex<rational> >
00429   GLUE_72 (const matrix<integer> &arg_1) {
00430     return as<matrix<complex<rational> > > (arg_1);
00431   }
00432   
00433   static row_tuple<generic>
00434   GLUE_73 (const row_tuple<rational> &arg_1) {
00435     return as<row_tuple<generic> > (arg_1);
00436   }
00437   
00438   static matrix<generic>
00439   GLUE_74 (const matrix<rational> &arg_1) {
00440     return as<matrix<generic> > (arg_1);
00441   }
00442   
00443   static row_tuple<complex<rational> >
00444   GLUE_75 (const row_tuple<rational> &arg_1) {
00445     return as<row_tuple<complex<rational> > > (arg_1);
00446   }
00447   
00448   static matrix<complex<rational> >
00449   GLUE_76 (const matrix<rational> &arg_1) {
00450     return as<matrix<complex<rational> > > (arg_1);
00451   }
00452   
00453   static row_tuple<generic>
00454   GLUE_77 (const row_tuple<complex<rational> > &arg_1) {
00455     return as<row_tuple<generic> > (arg_1);
00456   }
00457   
00458   static matrix<generic>
00459   GLUE_78 (const matrix<complex<rational> > &arg_1) {
00460     return as<matrix<generic> > (arg_1);
00461   }
00462   
00463   static matrix<complex<rational> >
00464   GLUE_79 (const complex<rational> &arg_1, const int &arg_2, const int &arg_3) {
00465     return fill_matrix (arg_1, arg_2, arg_3);
00466   }
00467   
00468   static matrix<complex<rational> >
00469   GLUE_80 (const complex<rational> &arg_1, const int &arg_2) {
00470     return jordan_matrix (arg_1, arg_2);
00471   }
00472   
00473   static matrix<complex<rational> >
00474   GLUE_81 (const vector<complex<rational> > &arg_1) {
00475     return toeplitz_matrix (arg_1);
00476   }
00477   
00478   static matrix<complex<rational> >
00479   GLUE_82 (const vector<complex<rational> > &arg_1) {
00480     return hankel_matrix (arg_1);
00481   }
00482   
00483   static matrix<complex<rational> >
00484   GLUE_83 (const vector<complex<rational> > &arg_1, const vector<complex<rational> > &arg_2) {
00485     return tensor_matrix (arg_1, arg_2);
00486   }
00487   
00488   static matrix<complex<rational> >
00489   GLUE_84 (const vector<complex<rational> > &arg_1) {
00490     return vandermonde (arg_1);
00491   }
00492   
00493   static matrix<complex<rational> >
00494   GLUE_85 (const matrix<complex<rational> > &arg_1) {
00495     return -arg_1;
00496   }
00497   
00498   static matrix<complex<rational> >
00499   GLUE_86 (const matrix<complex<rational> > &arg_1) {
00500     return square (arg_1);
00501   }
00502   
00503   static matrix<complex<rational> >
00504   GLUE_87 (const matrix<complex<rational> > &arg_1, const matrix<complex<rational> > &arg_2) {
00505     return arg_1 + arg_2;
00506   }
00507   
00508   static matrix<complex<rational> >
00509   GLUE_88 (const matrix<complex<rational> > &arg_1, const matrix<complex<rational> > &arg_2) {
00510     return arg_1 - arg_2;
00511   }
00512   
00513   static matrix<complex<rational> >
00514   GLUE_89 (const matrix<complex<rational> > &arg_1, const matrix<complex<rational> > &arg_2) {
00515     return arg_1 * arg_2;
00516   }
00517   
00518   static matrix<complex<rational> >
00519   GLUE_90 (const complex<rational> &arg_1, const matrix<complex<rational> > &arg_2) {
00520     return arg_1 + arg_2;
00521   }
00522   
00523   static matrix<complex<rational> >
00524   GLUE_91 (const matrix<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00525     return arg_1 + arg_2;
00526   }
00527   
00528   static matrix<complex<rational> >
00529   GLUE_92 (const complex<rational> &arg_1, const matrix<complex<rational> > &arg_2) {
00530     return arg_1 - arg_2;
00531   }
00532   
00533   static matrix<complex<rational> >
00534   GLUE_93 (const matrix<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00535     return arg_1 - arg_2;
00536   }
00537   
00538   static matrix<complex<rational> >
00539   GLUE_94 (const complex<rational> &arg_1, const matrix<complex<rational> > &arg_2) {
00540     return arg_1 * arg_2;
00541   }
00542   
00543   static matrix<complex<rational> >
00544   GLUE_95 (const matrix<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00545     return arg_1 * arg_2;
00546   }
00547   
00548   static vector<complex<rational> >
00549   GLUE_96 (const matrix<complex<rational> > &arg_1, const vector<complex<rational> > &arg_2) {
00550     return arg_1 * arg_2;
00551   }
00552   
00553   static vector<complex<rational> >
00554   GLUE_97 (const vector<complex<rational> > &arg_1, const matrix<complex<rational> > &arg_2) {
00555     return arg_1 * arg_2;
00556   }
00557   
00558   static matrix<complex<rational> >
00559   GLUE_98 (const complex<rational> &arg_1, const matrix<complex<rational> > &arg_2) {
00560     return arg_1 / arg_2;
00561   }
00562   
00563   static matrix<complex<rational> >
00564   GLUE_99 (const matrix<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00565     return arg_1 / arg_2;
00566   }
00567   
00568   static matrix<complex<rational> >
00569   GLUE_100 (const matrix<complex<rational> > &arg_1, const matrix<complex<rational> > &arg_2) {
00570     return krylov (arg_1, arg_2);
00571   }
00572   
00573   static complex<rational>
00574   GLUE_101 (const matrix<complex<rational> > &arg_1) {
00575     return det (arg_1);
00576   }
00577   
00578   static matrix<complex<rational> >
00579   GLUE_102 (const matrix<complex<rational> > &arg_1) {
00580     return row_echelon (arg_1);
00581   }
00582   
00583   static matrix<complex<rational> >
00584   GLUE_103 (const matrix<complex<rational> > &arg_1) {
00585     return column_echelon (arg_1);
00586   }
00587   
00588   static matrix<complex<rational> >
00589   GLUE_104 (const matrix<complex<rational> > &arg_1) {
00590     return row_reduced_echelon (arg_1);
00591   }
00592   
00593   static matrix<complex<rational> >
00594   GLUE_105 (const matrix<complex<rational> > &arg_1) {
00595     return column_reduced_echelon (arg_1);
00596   }
00597   
00598   static vector<generic>
00599   GLUE_106 (const matrix<complex<rational> > &arg_1) {
00600     return wrap_row_reduced_echelon_with_transform (arg_1);
00601   }
00602   
00603   static vector<generic>
00604   GLUE_107 (const matrix<complex<rational> > &arg_1) {
00605     return wrap_column_reduced_echelon_with_transform (arg_1);
00606   }
00607   
00608   static vector<generic>
00609   GLUE_108 (const matrix<complex<rational> > &arg_1) {
00610     return wrap_column_reduced_echelon_with_permutation (arg_1);
00611   }
00612   
00613   static matrix<complex<rational> >
00614   GLUE_109 (const matrix<complex<rational> > &arg_1) {
00615     return kernel (arg_1);
00616   }
00617   
00618   static matrix<complex<rational> >
00619   GLUE_110 (const matrix<complex<rational> > &arg_1) {
00620     return image (arg_1);
00621   }
00622   
00623   static int
00624   GLUE_111 (const matrix<complex<rational> > &arg_1) {
00625     return rank (arg_1);
00626   }
00627   
00628   static matrix<complex<rational> >
00629   GLUE_112 (const matrix<complex<rational> > &arg_1) {
00630     return invert (arg_1);
00631   }
00632   
00633   void
00634   glue_matrix_rational () {
00635     static bool done = false;
00636     if (done) return;
00637     done = true;
00638     call_glue (string ("glue_vector_rational"));
00639     call_glue (string ("glue_matrix_integer"));
00640     define_converter (":>", GLUE_1, PENALTY_CAST);
00641     define_converter (":>", GLUE_2, PENALTY_CAST);
00642     define_type<row_tuple<rational> > (gen (lit ("Row"), lit ("Rational")));
00643     define_type<row_tuple<complex<rational> > > (gen (lit ("Row"), gen (lit ("Complex"), lit ("Rational"))));
00644     define_type<matrix<rational> > (gen (lit ("Matrix"), lit ("Rational")));
00645     define_type<matrix<complex<rational> > > (gen (lit ("Matrix"), gen (lit ("Complex"), lit ("Rational"))));
00646     define ("hilbert_matrix", GLUE_3);
00647     define ("(.)", GLUE_4);
00648     define ("matrix", GLUE_5);
00649     define ("matrix", GLUE_6);
00650     define ("[]", GLUE_7);
00651     define ("#", GLUE_8);
00652     define ("rows", GLUE_9);
00653     define ("columns", GLUE_10);
00654     define (".[]", GLUE_11);
00655     define (".[]", GLUE_12);
00656     define (".[]", GLUE_13);
00657     define ("row", GLUE_14);
00658     define ("column", GLUE_15);
00659     define ("transpose", GLUE_16);
00660     define ("horizontal_join", GLUE_17);
00661     define ("vertical_join", GLUE_18);
00662     define ("(.)", GLUE_19);
00663     define ("matrix", GLUE_20);
00664     define ("matrix", GLUE_21);
00665     define ("[]", GLUE_22);
00666     define ("#", GLUE_23);
00667     define ("rows", GLUE_24);
00668     define ("columns", GLUE_25);
00669     define (".[]", GLUE_26);
00670     define (".[]", GLUE_27);
00671     define (".[]", GLUE_28);
00672     define ("row", GLUE_29);
00673     define ("column", GLUE_30);
00674     define ("transpose", GLUE_31);
00675     define ("horizontal_join", GLUE_32);
00676     define ("vertical_join", GLUE_33);
00677     define ("fill_matrix", GLUE_34);
00678     define ("jordan_matrix", GLUE_35);
00679     define ("toeplitz_matrix", GLUE_36);
00680     define ("hankel_matrix", GLUE_37);
00681     define ("tensor_matrix", GLUE_38);
00682     define ("vandermonde", GLUE_39);
00683     define ("-", GLUE_40);
00684     define ("square", GLUE_41);
00685     define ("+", GLUE_42);
00686     define ("-", GLUE_43);
00687     define ("*", GLUE_44);
00688     define ("+", GLUE_45);
00689     define ("+", GLUE_46);
00690     define ("-", GLUE_47);
00691     define ("-", GLUE_48);
00692     define ("*", GLUE_49);
00693     define ("*", GLUE_50);
00694     define ("*", GLUE_51);
00695     define ("*", GLUE_52);
00696     define ("/", GLUE_53);
00697     define ("/", GLUE_54);
00698     define ("krylov", GLUE_55);
00699     define ("det", GLUE_56);
00700     define ("row_echelon", GLUE_57);
00701     define ("column_echelon", GLUE_58);
00702     define ("row_reduced_echelon", GLUE_59);
00703     define ("column_reduced_echelon", GLUE_60);
00704     define ("row_reduced_echelon_with_transform", GLUE_61);
00705     define ("column_reduced_echelon_with_transform", GLUE_62);
00706     define ("column_reduced_echelon_with_permutation", GLUE_63);
00707     define ("ker", GLUE_64);
00708     define ("im", GLUE_65);
00709     define ("rank", GLUE_66);
00710     define ("invert", GLUE_67);
00711     define ("abs", GLUE_68);
00712     define_converter (":>", GLUE_69, PENALTY_INCLUSION);
00713     define_converter (":>", GLUE_70, PENALTY_INCLUSION);
00714     define_converter (":>", GLUE_71, PENALTY_INCLUSION);
00715     define_converter (":>", GLUE_72, PENALTY_INCLUSION);
00716     define_converter (":>", GLUE_73, PENALTY_PROMOTE_GENERIC);
00717     define_converter (":>", GLUE_74, PENALTY_PROMOTE_GENERIC);
00718     define_converter (":>", GLUE_75, PENALTY_INCLUSION);
00719     define_converter (":>", GLUE_76, PENALTY_INCLUSION);
00720     define_converter (":>", GLUE_77, PENALTY_PROMOTE_GENERIC);
00721     define_converter (":>", GLUE_78, PENALTY_PROMOTE_GENERIC);
00722     define ("fill_matrix", GLUE_79);
00723     define ("jordan_matrix", GLUE_80);
00724     define ("toeplitz_matrix", GLUE_81);
00725     define ("hankel_matrix", GLUE_82);
00726     define ("tensor_matrix", GLUE_83);
00727     define ("vandermonde", GLUE_84);
00728     define ("-", GLUE_85);
00729     define ("square", GLUE_86);
00730     define ("+", GLUE_87);
00731     define ("-", GLUE_88);
00732     define ("*", GLUE_89);
00733     define ("+", GLUE_90);
00734     define ("+", GLUE_91);
00735     define ("-", GLUE_92);
00736     define ("-", GLUE_93);
00737     define ("*", GLUE_94);
00738     define ("*", GLUE_95);
00739     define ("*", GLUE_96);
00740     define ("*", GLUE_97);
00741     define ("/", GLUE_98);
00742     define ("/", GLUE_99);
00743     define ("krylov", GLUE_100);
00744     define ("det", GLUE_101);
00745     define ("row_echelon", GLUE_102);
00746     define ("column_echelon", GLUE_103);
00747     define ("row_reduced_echelon", GLUE_104);
00748     define ("column_reduced_echelon", GLUE_105);
00749     define ("row_reduced_echelon_with_transform", GLUE_106);
00750     define ("column_reduced_echelon_with_transform", GLUE_107);
00751     define ("column_reduced_echelon_with_permutation", GLUE_108);
00752     define ("ker", GLUE_109);
00753     define ("im", GLUE_110);
00754     define ("rank", GLUE_111);
00755     define ("invert", GLUE_112);
00756   }
00757 }
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines