shape_doc 0.1
/Users/mourrain/Devel/mmx/shape/glue/glue_algebraic_curve.cpp
Go to the documentation of this file.
00001 
00002 #include <basix/double.hpp>
00003 #include <basix/vector.hpp>
00004 #include <basix/port.hpp>
00005 #include <basix/int.hpp>
00006 #include <numerix/integer.hpp>
00007 #include <numerix/rational.hpp>
00008 #include <numerix/floating.hpp>
00009 #include <numerix/kernel.hpp>
00010 #include <realroot/polynomial.hpp>
00011 #include <realroot/polynomial_glue.hpp>
00012 #include <realroot/polynomial_sparse_glue.hpp>
00013 #include <shape/axel_glue.hpp>
00014 #include <shape/algebraic_curve_glue.hpp>
00015 #include <basix/alias.hpp>
00016 #include <basix/glue.hpp>
00017 
00018 #define double_literal(x) as_double (as_string (x))
00019 #define int_literal(x) as_int (as_string (x))
00020 #define set_of_generic set_of(generic)
00021 #define set_of_double set_of(double)
00022 #define set_of_integer set_of(integer)
00023 #define set_of_rational set_of(rational)
00024 #define set_of_bigfloat set_of(bigfloat)
00025 #define set_of_complex_bigfloat set_of(complex_bigfloat)
00026 
00027 namespace mmx {
00028   static alias<shape_axel>
00029   GLUE_1 (const alias<shape_axel> &arg_1, const shape_algebraic_curve &arg_2) {
00030     return alias_write (arg_1, arg_2);
00031   }
00032   
00033   static shape_algebraic_curve
00034   GLUE_2 (const ring<rational, Sparse, DegRevLex>::Polynomial &arg_1) {
00035     return shape_algebraic_curve (arg_1);
00036   }
00037   
00038   static shape_algebraic_curve
00039   GLUE_3 (const ring<rational, Sparse, DegRevLex>::Polynomial &arg_1, const ring<rational, Sparse, DegRevLex>::Polynomial &arg_2) {
00040     return shape_algebraic_curve (arg_1, arg_2);
00041   }
00042   
00043   void
00044   glue_algebraic_curve () {
00045     static bool done = false;
00046     if (done) return;
00047     done = true;
00048     call_glue (string ("glue_double"));
00049     call_glue (string ("glue_string"));
00050     call_glue (string ("glue_vector_generic"));
00051     call_glue (string ("glue_polynomial_sparse_rational"));
00052     call_glue (string ("glue_axel"));
00053     define_type<shape_algebraic_curve > (lit ("AlgebraicCurve"));
00054     define ("<<", GLUE_1);
00055     define ("algebraic_curve", GLUE_2);
00056     define ("algebraic_curve", GLUE_3);
00057   }
00058 }