• Main Page
  • Namespaces
  • Classes
  • Files
  • File List

libalgebra-demo/libalgebra/libalgebra.h

00001 /* *************************************************************
00002 
00003 Copyright 2010 Terry Lyons, Stephen Buckley, Djalil Chafai, 
00004 Greg Gyurkó and Arend Janssen. 
00005 
00006 Distributed under the terms of the GNU General Public License, 
00007 Version 3. (See accompanying file License.txt)
00008 
00009 ************************************************************* */
00010 
00011 
00012 
00013 
00014 //  libalgebra.h 
00015 
00016 
00017 // Include once wrapper
00018 #ifndef DJC_COROPA_LIBALGEBRAH_SEEN
00019 #define DJC_COROPA_LIBALGEBRAH_SEEN
00020 
00021 #include <iostream>
00022 #include <sstream>
00023 #include <string>
00024 #include <deque>
00025 #include <vector>
00026 #include <map>
00027 #include <utility>
00028 #include <algorithm>
00029 #include <cmath>
00030 #include "implimentation_types.h"
00031 #include <stdlib.h>
00032 #include <cassert>
00033 #include <boost/thread/shared_mutex.hpp>
00034 #include <boost/thread/recursive_mutex.hpp>
00035 #include <boost/thread/locks.hpp>
00036 
00038 
00046 namespace alg
00047 {
00048 
00049 // Some useful macros to avoid similar codes.
00050 
00051 #define __DECLARE_BINARY_OPERATOR(T1, NEWOP, OLDOP, T2) \
00052         T1 operator NEWOP(const T2& rhs) const \
00053         { T1 result(*this); return result OLDOP rhs; }
00054 
00055 #define __DECLARE_UNARY_OPERATOR(NEWT, NEWOP, OLDOP, OLDT) \
00056         NEWT operator NEWOP(void) const \
00057         { return OLDT::operator OLDOP (); }
00058 
00059 //  End of macros.
00060 
00062 
00064 template<class BASIS, class MAP = typename BASIS::MAP>
00065 class sparse_vector;
00067 template<class BASIS>
00068 class algebra;
00070 template<typename SCA, DEG n_letters, DEG max_degree = 0>
00071 class tensor_basis;
00073 template<typename SCA, typename RAT,
00074                  DEG n_letters, DEG max_degree = 0>
00075 class free_tensor_basis;
00077 template<typename SCA, typename RAT,
00078                  DEG n_letters, DEG max_degree = 0>
00079 class shuffle_tensor_basis;
00081 template<typename SCA, typename RAT,
00082                  DEG n_letters, DEG max_degree = 0>
00083 class free_tensor;
00085 template<typename SCA, typename RAT,
00086                  DEG n_letters, DEG max_degree = 0>
00087 class shuffle_tensor;
00089 class hall_basis;
00091 template<typename SCA, typename RAT,
00092                  DEG n_letters, DEG max_degree = 0>
00093 class lie_basis;
00095 template<typename SCA, typename RAT,
00096                  DEG n_letters, DEG max_degree = 0>
00097 class lie;
00099 template<typename SCA, typename RAT,
00100                  DEG n_letters, DEG max_degree = 0>
00101 class maps;
00103 template<typename SCA, typename RAT,
00104                  DEG n_letters, DEG max_degree>
00105 class cbh;
00107 template<typename SCA, typename RAT>
00108 class poly_basis;
00110 template<typename SCA, typename RAT>
00111 class poly;
00112 
00113 
00115 template<typename SCA, DEG n_letters, DEG max_degree = 0>
00116 class monomial_basis;
00118 template<typename SCA, typename RAT, DEG n_letters, DEG max_degree = 0>
00119 class free_monomial_basis;
00121 template<typename SCA, typename RAT, DEG n_letters, DEG max_degree = 0>
00122 class multi_polynomial;
00123 
00124 
00126 template<typename SCA, typename RAT, DEG n_letters, DEG max_degree = 0>
00127 class poly_lie_basis;
00128 
00130 template<typename SCA, typename RAT, DEG n_letters, DEG max_degree = 0>
00131 class poly_lie;
00132 
00133 #include "sparse_vector.h"
00134 #include "algebra.h"
00135 #include "tensor_basis.h"
00136 #include "tensor.h"
00137 #include "lie_basis.h"
00138 #include "lie.h"
00139 #include "utils.h"
00140 #include "poly_basis.h"
00141 #include "polynomials.h"
00142 #include "monomial_basis.h"
00143 #include "multi_polynomial.h"
00144 #include "poly_lie_basis.h"
00145 #include "poly_lie.h"
00146 
00147 // Undeclaring local macros in reverse order of declaration.
00148 #undef __DECLARE_UNARY_OPERATOR
00149 #undef __DECLARE_BINARY_OPERATOR
00150 // End of undeclaration of local macros.
00151 
00152 } // namespace alg
00153 
00154 
00155 // Include once wrapper
00156 #endif // DJC_COROPA_LIBALGEBRAH_SEEN
00157 
00158 //EOF.

Generated on Fri Jan 14 2011 17:50:32 for Rough Differential Equation Solver by  doxygen 1.7.1