armadillo

Go to the documentation of this file.
00001 // Copyright (C) 2009 NICTA
00002 // 
00003 // Authors:
00004 // - Conrad Sanderson (conradsand at ieee dot org)
00005 // 
00006 // This file is part of the Armadillo C++ library.
00007 // It is provided without any warranty of fitness
00008 // for any purpose. You can redistribute this file
00009 // and/or modify it under the terms of the GNU
00010 // Lesser General Public License (LGPL) as published
00011 // by the Free Software Foundation, either version 3
00012 // of the License or (at your option) any later version.
00013 // (see http://www.opensource.org/licenses for more info)
00014 
00015 
00016 #ifndef ARMA_INCLUDES
00017 #define ARMA_INCLUDES
00018 
00019 
00020 #define arma_hot
00021 #define arma_pure
00022 #define arma_const
00023 #define arma_inline   inline
00024 #define arma_aligned
00025 
00026 
00027 #if defined(__INTEL_COMPILER)
00028   #if(__INTEL_COMPILER < 1000)
00029     #error "need a newer compiler"
00030   #endif
00031 #elif defined(_MSC_VER)
00032   #if(_MSC_VER < 1400)
00033     #error "need a newer compiler"
00034   #endif
00035 #elif defined(__GNUG__)
00036   #if(__GNUC__ < 4)
00037     #error "need a newer compiler"
00038   #endif
00039   #if(__GNUC_MINOR__ >= 3)
00040     #undef  arma_hot
00041     #define arma_hot __attribute__((hot))
00042   #endif
00043 
00044   #undef  arma_pure
00045   #undef  arma_const
00046   #undef  arma_inline
00047   #undef  arma_aligned
00048 
00049   #define arma_pure           __attribute__((pure)) 
00050   #define arma_const          __attribute__((const))
00051   #define arma_inline  inline __attribute__((always_inline))
00052   #define arma_aligned        __attribute__((aligned))
00053 
00054 #endif
00055 
00056 #include "armadillo_bits/config.hpp"
00057 
00058 #include <cstdlib>
00059 #include <cstring>
00060 #include <climits>
00061 #include <cmath>
00062 
00063 #include <iostream>
00064 #include <fstream>
00065 #include <sstream>
00066 #include <stdexcept>
00067 #include <limits>
00068 #include <algorithm>
00069 #include <complex>
00070 #include <vector>
00071 
00072 #if !defined(ARMA_USE_BOOST)
00073   #include <sys/time.h>
00074 #else
00075   #include <boost/format.hpp>
00076   #include <boost/current_function.hpp>
00077   #include <boost/date_time/posix_time/posix_time.hpp>
00078   #include <boost/math/complex.hpp>
00079   #include <boost/math/special_functions/acosh.hpp>
00080   #include <boost/math/special_functions/asinh.hpp>
00081   #include <boost/math/special_functions/atanh.hpp>
00082 #endif
00083 
00084 
00085 #if defined(ARMA_USE_ATLAS)
00086   #define ARMA_TMP_STRING(x) x
00087 
00088   #define ARMA_ATLAS_INCLUDE_1 <ARMA_TMP_STRING(ARMA_ATLAS_INCLUDE_DIR) ARMA_TMP_STRING(cblas.h)>
00089   #define ARMA_ATLAS_INCLUDE_2 <ARMA_TMP_STRING(ARMA_ATLAS_INCLUDE_DIR) ARMA_TMP_STRING(clapack.h)>
00090   
00091   extern "C"
00092     {
00093     #include ARMA_ATLAS_INCLUDE_1
00094     #include ARMA_ATLAS_INCLUDE_2
00095     }
00096 
00097   #undef ARMA_TMP_STRING
00098   #undef ARMA_ATLAS_INCLUDE_1
00099   #undef ARMA_ATLAS_INCLUDE_2
00100 #endif
00101 
00102 
00103 #include "armadillo_bits/itpp_wrap.hpp"
00104 
00105 
00106 //! \namespace arma namespace for Armadillo classes and functions
00107 namespace arma
00108   {
00109   
00110   // preliminaries
00111   
00112   #include "armadillo_bits/forward_proto.hpp"
00113   #include "armadillo_bits/static_assert.hpp"
00114   #include "armadillo_bits/typedef.hpp"
00115   #include "armadillo_bits/format_wrap.hpp"
00116   #include "armadillo_bits/cmath_wrap.hpp"
00117   #include "armadillo_bits/constants.hpp"
00118   #include "armadillo_bits/traits.hpp"
00119   #include "armadillo_bits/access.hpp"
00120   
00121   //
00122   // class prototypes
00123   
00124   #include "armadillo_bits/syslib_proto.hpp"
00125   #include "armadillo_bits/podarray_proto.hpp"
00126   
00127   #include "armadillo_bits/blas_proto.hpp"
00128   #include "armadillo_bits/lapack_proto.hpp"
00129   #include "armadillo_bits/atlas_proto.hpp"
00130   #include "armadillo_bits/auxlib_proto.hpp"
00131   
00132   #include "armadillo_bits/Base.hpp"
00133   #include "armadillo_bits/Mat_proto.hpp"
00134   #include "armadillo_bits/Col_proto.hpp"
00135   #include "armadillo_bits/Row_proto.hpp"
00136   #include "armadillo_bits/field_proto.hpp"
00137   #include "armadillo_bits/subview_proto.hpp"
00138   #include "armadillo_bits/subview_field_proto.hpp"
00139   #include "armadillo_bits/diagview_proto.hpp"
00140   
00141   #include "armadillo_bits/diskio_proto.hpp"
00142   #include "armadillo_bits/wall_clock_proto.hpp"
00143   #include "armadillo_bits/running_stat_proto.hpp"
00144   
00145   #include "armadillo_bits/Op_proto.hpp"
00146   #include "armadillo_bits/Glue_proto.hpp"
00147   
00148   #include "armadillo_bits/op_diagmat_proto.hpp"
00149   #include "armadillo_bits/op_dot_proto.hpp"
00150   #include "armadillo_bits/op_inv_proto.hpp"
00151   #include "armadillo_bits/op_htrans_proto.hpp"
00152   #include "armadillo_bits/op_misc_proto.hpp"
00153   #include "armadillo_bits/op_max_proto.hpp"
00154   #include "armadillo_bits/op_min_proto.hpp"
00155   #include "armadillo_bits/op_mean_proto.hpp"
00156   #include "armadillo_bits/op_median_proto.hpp"
00157   #include "armadillo_bits/op_neg_proto.hpp"
00158   #include "armadillo_bits/op_ones_proto.hpp"
00159   #include "armadillo_bits/op_rand_proto.hpp"
00160   #include "armadillo_bits/op_randn_proto.hpp"
00161   #include "armadillo_bits/op_scalar_misc_proto.hpp"
00162   #include "armadillo_bits/op_sort_proto.hpp"
00163   #include "armadillo_bits/op_sum_proto.hpp"
00164   #include "armadillo_bits/op_stddev_proto.hpp"
00165   #include "armadillo_bits/op_trig_proto.hpp"
00166   #include "armadillo_bits/op_trans_proto.hpp"
00167   #include "armadillo_bits/op_var_proto.hpp"
00168   #include "armadillo_bits/op_zeros_proto.hpp"
00169   
00170   #include "armadillo_bits/glue_plus_proto.hpp"
00171   #include "armadillo_bits/glue_minus_proto.hpp"
00172   #include "armadillo_bits/glue_times_proto.hpp"
00173   #include "armadillo_bits/glue_schur_proto.hpp"
00174   #include "armadillo_bits/glue_div_proto.hpp"
00175   
00176   //
00177   // debugging functions
00178   
00179   #include "armadillo_bits/debug.hpp"
00180   
00181   
00182   #include "armadillo_bits/unwrap.hpp"
00183   #include "armadillo_bits/Op_meat.hpp"
00184   #include "armadillo_bits/Glue_meat.hpp"
00185   #include "armadillo_bits/glue_metaprog.hpp"
00186   
00187   //
00188   // operators
00189   
00190   #include "armadillo_bits/operator_plus.hpp"
00191   #include "armadillo_bits/operator_minus.hpp"
00192   #include "armadillo_bits/operator_times.hpp"
00193   #include "armadillo_bits/operator_times_dot.hpp"
00194   #include "armadillo_bits/operator_schur.hpp"
00195   #include "armadillo_bits/operator_div.hpp"
00196   #include "armadillo_bits/operator_relational.hpp"
00197   
00198   //
00199   // ostream
00200   
00201   #include "armadillo_bits/ostream_mat.hpp"
00202   #include "armadillo_bits/ostream_diagmat.hpp"
00203   #include "armadillo_bits/ostream_field.hpp"
00204   #include "armadillo_bits/ostream_misc.hpp"
00205   
00206   //
00207   // user accessible functions
00208   
00209   #include "armadillo_bits/fn_conv_to.hpp"
00210   #include "armadillo_bits/fn_min.hpp"
00211   #include "armadillo_bits/fn_max.hpp"
00212   #include "armadillo_bits/fn_accu.hpp"
00213   #include "armadillo_bits/fn_sum.hpp"
00214   #include "armadillo_bits/fn_diagmat.hpp"
00215   #include "armadillo_bits/fn_inv.hpp"
00216   #include "armadillo_bits/fn_trace.hpp"
00217   #include "armadillo_bits/fn_trans.hpp"
00218   #include "armadillo_bits/fn_det.hpp"
00219   #include "armadillo_bits/fn_eig.hpp"
00220   #include "armadillo_bits/fn_lu.hpp"
00221   #include "armadillo_bits/fn_zeros.hpp"
00222   #include "armadillo_bits/fn_ones.hpp"
00223   #include "armadillo_bits/fn_misc.hpp"
00224   #include "armadillo_bits/fn_norm.hpp"
00225   #include "armadillo_bits/fn_dot.hpp"
00226   #include "armadillo_bits/fn_rand.hpp"
00227   #include "armadillo_bits/fn_randn.hpp"
00228   #include "armadillo_bits/fn_trig.hpp"
00229   #include "armadillo_bits/fn_mean.hpp"
00230   #include "armadillo_bits/fn_median.hpp"
00231   #include "armadillo_bits/fn_stddev.hpp"
00232   #include "armadillo_bits/fn_var.hpp"
00233   #include "armadillo_bits/fn_sort.hpp"
00234   #include "armadillo_bits/fn_sort_index.hpp"
00235   #include "armadillo_bits/fn_htrans.hpp"
00236   #include "armadillo_bits/fn_chol.hpp"
00237   #include "armadillo_bits/fn_qr.hpp"
00238   #include "armadillo_bits/fn_svd.hpp"
00239   #include "armadillo_bits/fn_solve.hpp"
00240   
00241   //
00242   // class meat
00243   
00244   #include "armadillo_bits/gemm.hpp"
00245   #include "armadillo_bits/gemv.hpp"
00246   #include "armadillo_bits/gemm_mixed.hpp"
00247   
00248   #include "armadillo_bits/podarray_meat.hpp"
00249   #include "armadillo_bits/auxlib_meat.hpp"
00250   
00251   #include "armadillo_bits/Mat_meat.hpp"
00252   #include "armadillo_bits/Col_meat.hpp"
00253   #include "armadillo_bits/Row_meat.hpp"
00254   #include "armadillo_bits/field_meat.hpp"
00255   #include "armadillo_bits/subview_meat.hpp"
00256   #include "armadillo_bits/subview_field_meat.hpp"
00257   #include "armadillo_bits/diagview_meat.hpp"
00258   
00259   #include "armadillo_bits/diskio_meat.hpp"
00260   #include "armadillo_bits/wall_clock_meat.hpp"
00261   #include "armadillo_bits/running_stat_meat.hpp"
00262   
00263   #include "armadillo_bits/op_diagmat_meat.hpp"
00264   #include "armadillo_bits/op_dot_meat.hpp"
00265   #include "armadillo_bits/op_inv_meat.hpp"
00266   #include "armadillo_bits/op_htrans_meat.hpp"
00267   #include "armadillo_bits/op_misc_meat.hpp"
00268   #include "armadillo_bits/op_max_meat.hpp"
00269   #include "armadillo_bits/op_min_meat.hpp"
00270   #include "armadillo_bits/op_mean_meat.hpp"
00271   #include "armadillo_bits/op_median_meat.hpp"
00272   #include "armadillo_bits/op_neg_meat.hpp"
00273   #include "armadillo_bits/op_ones_meat.hpp"
00274   #include "armadillo_bits/op_rand_meat.hpp"
00275   #include "armadillo_bits/op_randn_meat.hpp"
00276   #include "armadillo_bits/op_scalar_misc_meat.hpp"
00277   #include "armadillo_bits/op_sort_meat.hpp"
00278   #include "armadillo_bits/op_sum_meat.hpp"
00279   #include "armadillo_bits/op_stddev_meat.hpp"
00280   #include "armadillo_bits/op_trans_meat.hpp"
00281   #include "armadillo_bits/op_trig_meat.hpp"
00282   #include "armadillo_bits/op_var_meat.hpp"
00283   #include "armadillo_bits/op_zeros_meat.hpp"
00284   
00285   #include "armadillo_bits/glue_plus_meat.hpp"
00286   #include "armadillo_bits/glue_minus_meat.hpp"
00287   #include "armadillo_bits/glue_times_meat.hpp"
00288   #include "armadillo_bits/glue_schur_meat.hpp"
00289   #include "armadillo_bits/glue_div_meat.hpp"
00290   
00291   #include "armadillo_bits/deprecated.hpp"
00292 
00293   }
00294   
00295 #endif
00296