armadillo

Go to the documentation of this file.
00001 // Copyright (C) 2010 NICTA and the authors listed below
00002 // http://nicta.com.au
00003 // 
00004 // Authors:
00005 // - Conrad Sanderson (conradsand at ieee dot org)
00006 // 
00007 // This file is part of the Armadillo C++ library.
00008 // It is provided without any warranty of fitness
00009 // for any purpose. You can redistribute this file
00010 // and/or modify it under the terms of the GNU
00011 // Lesser General Public License (LGPL) as published
00012 // by the Free Software Foundation, either version 3
00013 // of the License or (at your option) any later version.
00014 // (see http://www.opensource.org/licenses for more info)
00015 
00016 
00017 #ifndef ARMA_INCLUDES
00018 #define ARMA_INCLUDES
00019 
00020 
00021 #include "armadillo_bits/config.hpp"
00022 #include "armadillo_bits/compiler_setup.hpp"
00023 
00024 #include <cstdlib>
00025 #include <cstring>
00026 #include <climits>
00027 #include <cmath>
00028 
00029 #include <iostream>
00030 #include <fstream>
00031 #include <sstream>
00032 #include <stdexcept>
00033 #include <limits>
00034 #include <algorithm>
00035 #include <complex>
00036 #include <vector>
00037 
00038 
00039 #if defined(ARMA_HAVE_GETTIMEOFDAY)
00040   #include <sys/time.h>
00041   #undef ARMA_USE_BOOST_DATE
00042 #endif
00043 
00044 
00045 #if defined(ARMA_USE_BOOST)
00046   #include <boost/math/complex.hpp>
00047   #include <boost/math/special_functions/acosh.hpp>
00048   #include <boost/math/special_functions/asinh.hpp>
00049   #include <boost/math/special_functions/atanh.hpp>
00050   #include <boost/current_function.hpp>
00051 
00052   #if defined(ARMA_EXTRA_DEBUG)
00053     #include <boost/format.hpp>
00054     #define ARMA_USE_BOOST_FORMAT
00055   #endif
00056 #endif
00057 
00058 
00059 #if defined(ARMA_USE_BOOST_DATE)
00060   #include <boost/date_time/posix_time/posix_time.hpp>
00061 #endif
00062 
00063 
00064 #if defined(ARMA_USE_ATLAS)
00065   #define ARMA_TMP_STRING(x) x
00066 
00067   #define ARMA_ATLAS_INCLUDE_1 <ARMA_TMP_STRING(ARMA_ATLAS_INCLUDE_DIR)/ARMA_TMP_STRING(cblas.h)>
00068   #define ARMA_ATLAS_INCLUDE_2 <ARMA_TMP_STRING(ARMA_ATLAS_INCLUDE_DIR)/ARMA_TMP_STRING(clapack.h)>
00069   
00070   extern "C"
00071     {
00072     #include ARMA_ATLAS_INCLUDE_1
00073     #include ARMA_ATLAS_INCLUDE_2
00074     }
00075 
00076   #undef ARMA_TMP_STRING
00077   #undef ARMA_ATLAS_INCLUDE_1
00078   #undef ARMA_ATLAS_INCLUDE_2
00079 #endif
00080 
00081 
00082 #include "armadillo_bits/itpp_wrap.hpp"
00083 
00084 
00085 //! \namespace arma namespace for Armadillo classes and functions
00086 namespace arma
00087   {
00088   
00089   // preliminaries
00090   
00091   #include "armadillo_bits/forward_proto.hpp"
00092   #include "armadillo_bits/static_assert.hpp"
00093   #include "armadillo_bits/typedef.hpp"
00094   #include "armadillo_bits/format_wrap.hpp"
00095   #include "armadillo_bits/cmath_wrap.hpp"
00096   #include "armadillo_bits/constants.hpp"
00097   #include "armadillo_bits/version.hpp"
00098   #include "armadillo_bits/traits.hpp"
00099   #include "armadillo_bits/promote_type.hpp"
00100   #include "armadillo_bits/upgrade_val.hpp"
00101   #include "armadillo_bits/restrictors.hpp"
00102   #include "armadillo_bits/access.hpp"
00103   
00104   
00105   //
00106   // class prototypes
00107   
00108   #include "armadillo_bits/syslib_proto.hpp"
00109   #include "armadillo_bits/podarray_proto.hpp"
00110   
00111   #include "armadillo_bits/blas_proto.hpp"
00112   #include "armadillo_bits/lapack_proto.hpp"
00113   #include "armadillo_bits/atlas_proto.hpp"
00114   #include "armadillo_bits/auxlib_proto.hpp"
00115   
00116   #include "armadillo_bits/Base.hpp"
00117   #include "armadillo_bits/BaseCube.hpp"
00118   
00119   #include "armadillo_bits/Mat_proto.hpp"
00120   #include "armadillo_bits/Col_proto.hpp"
00121   #include "armadillo_bits/Row_proto.hpp"
00122   #include "armadillo_bits/Cube_proto.hpp"
00123   
00124   #include "armadillo_bits/field_proto.hpp"
00125   #include "armadillo_bits/subview_proto.hpp"
00126   #include "armadillo_bits/subview_field_proto.hpp"
00127   #include "armadillo_bits/subview_cube_proto.hpp"
00128   #include "armadillo_bits/diagview_proto.hpp"
00129   
00130   
00131   #include "armadillo_bits/diskio_proto.hpp"
00132   #include "armadillo_bits/wall_clock_proto.hpp"
00133   #include "armadillo_bits/running_stat_proto.hpp"
00134   #include "armadillo_bits/running_stat_vec_proto.hpp"
00135   
00136   #include "armadillo_bits/Op_proto.hpp"
00137   #include "armadillo_bits/OpCube_proto.hpp"
00138   
00139   #include "armadillo_bits/eOp_proto.hpp"
00140   #include "armadillo_bits/eOpCube_proto.hpp"
00141   
00142   
00143   #include "armadillo_bits/Glue_proto.hpp"
00144   #include "armadillo_bits/eGlue_proto.hpp"
00145   
00146   #include "armadillo_bits/GlueCube_proto.hpp"
00147   #include "armadillo_bits/eGlueCube_proto.hpp"
00148   
00149   #include "armadillo_bits/eop_core_proto.hpp"
00150   #include "armadillo_bits/eop_cube_core_proto.hpp"
00151   
00152   #include "armadillo_bits/eglue_core_proto.hpp"
00153   #include "armadillo_bits/eglue_cube_core_proto.hpp"
00154   
00155   #include "armadillo_bits/op_diagmat_proto.hpp"
00156   #include "armadillo_bits/op_diagvec_proto.hpp"
00157   #include "armadillo_bits/op_dot_proto.hpp"
00158   #include "armadillo_bits/op_inv_proto.hpp"
00159   #include "armadillo_bits/op_htrans_proto.hpp"
00160   #include "armadillo_bits/op_max_proto.hpp"
00161   #include "armadillo_bits/op_min_proto.hpp"
00162   #include "armadillo_bits/op_mean_proto.hpp"
00163   #include "armadillo_bits/op_median_proto.hpp"
00164   #include "armadillo_bits/op_sort_proto.hpp"
00165   #include "armadillo_bits/op_sum_proto.hpp"
00166   #include "armadillo_bits/op_stddev_proto.hpp"
00167   #include "armadillo_bits/op_trans_proto.hpp"
00168   #include "armadillo_bits/op_var_proto.hpp"
00169   #include "armadillo_bits/op_repmat_proto.hpp"
00170   #include "armadillo_bits/op_reshape_proto.hpp"
00171   #include "armadillo_bits/op_cov_proto.hpp"
00172   #include "armadillo_bits/op_cor_proto.hpp"
00173   #include "armadillo_bits/op_shuffle_proto.hpp"
00174   #include "armadillo_bits/op_prod_proto.hpp"
00175   #include "armadillo_bits/op_pinv_proto.hpp"
00176   #include "armadillo_bits/op_dotext_proto.hpp"
00177   #include "armadillo_bits/op_flip_proto.hpp"
00178   #include "armadillo_bits/op_princomp_proto.hpp"
00179   #include "armadillo_bits/op_princomp_cov_proto.hpp"
00180   
00181   #include "armadillo_bits/glue_times_proto.hpp"
00182   #include "armadillo_bits/glue_cov_proto.hpp"
00183   #include "armadillo_bits/glue_cor_proto.hpp"
00184   #include "armadillo_bits/glue_kron_proto.hpp"
00185   #include "armadillo_bits/glue_cross_proto.hpp"
00186   #include "armadillo_bits/glue_join_proto.hpp"
00187   
00188   
00189   //
00190   // debugging functions
00191   
00192   #include "armadillo_bits/debug.hpp"
00193   
00194   
00195   //
00196   // classes that underlay metaprogramming 
00197   
00198   #include "armadillo_bits/Proxy.hpp"
00199   #include "armadillo_bits/ProxyCube.hpp"
00200   
00201   #include "armadillo_bits/diagmat_proxy.hpp"
00202 
00203   #include "armadillo_bits/unwrap.hpp"
00204   #include "armadillo_bits/unwrap_cube.hpp"
00205 
00206   #include "armadillo_bits/strip.hpp"
00207   
00208   #include "armadillo_bits/Op_meat.hpp"
00209   #include "armadillo_bits/OpCube_meat.hpp"
00210   
00211   #include "armadillo_bits/Glue_meat.hpp"
00212   #include "armadillo_bits/GlueCube_meat.hpp"
00213   
00214   #include "armadillo_bits/eop_aux.hpp"
00215   
00216   #include "armadillo_bits/eOp_meat.hpp"
00217   #include "armadillo_bits/eOpCube_meat.hpp"
00218   
00219   #include "armadillo_bits/eGlue_meat.hpp"
00220   #include "armadillo_bits/eGlueCube_meat.hpp"
00221   
00222   #include "armadillo_bits/eglue_misc.hpp"
00223   #include "armadillo_bits/eglue_cube_misc.hpp"
00224   
00225   
00226   //
00227   // ostream
00228   
00229   #include "armadillo_bits/arma_ostream_proto.hpp"
00230   #include "armadillo_bits/arma_ostream_meat.hpp"
00231   
00232   
00233   //
00234   // operators
00235   
00236   #include "armadillo_bits/operator_plus.hpp"
00237   #include "armadillo_bits/operator_minus.hpp"
00238   #include "armadillo_bits/operator_times.hpp"
00239   #include "armadillo_bits/operator_schur.hpp"
00240   #include "armadillo_bits/operator_div.hpp"
00241   #include "armadillo_bits/operator_relational.hpp"
00242   
00243   #include "armadillo_bits/operator_cube_plus.hpp"
00244   #include "armadillo_bits/operator_cube_minus.hpp"
00245   #include "armadillo_bits/operator_cube_times.hpp"
00246   #include "armadillo_bits/operator_cube_schur.hpp"
00247   #include "armadillo_bits/operator_cube_div.hpp"
00248   #include "armadillo_bits/operator_cube_relational.hpp"
00249   
00250   #include "armadillo_bits/operator_ostream.hpp"
00251   
00252   
00253   //
00254   // user accessible functions
00255   
00256   // the order of the fn_*.hpp include files matters,
00257   // as some files require functionality given in preceding files
00258   
00259   #include "armadillo_bits/fn_conv_to.hpp"
00260   #include "armadillo_bits/fn_min.hpp"
00261   #include "armadillo_bits/fn_max.hpp"
00262   #include "armadillo_bits/fn_accu.hpp"
00263   #include "armadillo_bits/fn_sum.hpp"
00264   #include "armadillo_bits/fn_diagmat.hpp"
00265   #include "armadillo_bits/fn_diagvec.hpp"
00266   #include "armadillo_bits/fn_inv.hpp"
00267   #include "armadillo_bits/fn_trace.hpp"
00268   #include "armadillo_bits/fn_trans.hpp"
00269   #include "armadillo_bits/fn_det.hpp"
00270   #include "armadillo_bits/fn_log_det.hpp"
00271   #include "armadillo_bits/fn_eig.hpp"
00272   #include "armadillo_bits/fn_lu.hpp"
00273   #include "armadillo_bits/fn_zeros.hpp"
00274   #include "armadillo_bits/fn_ones.hpp"
00275   #include "armadillo_bits/fn_misc.hpp"
00276   #include "armadillo_bits/fn_norm.hpp"
00277   #include "armadillo_bits/fn_dot.hpp"
00278   #include "armadillo_bits/fn_rand.hpp"
00279   #include "armadillo_bits/fn_randn.hpp"
00280   #include "armadillo_bits/fn_trig.hpp"
00281   #include "armadillo_bits/fn_mean.hpp"
00282   #include "armadillo_bits/fn_median.hpp"
00283   #include "armadillo_bits/fn_stddev.hpp"
00284   #include "armadillo_bits/fn_var.hpp"
00285   #include "armadillo_bits/fn_sort.hpp"
00286   #include "armadillo_bits/fn_sort_index.hpp"
00287   #include "armadillo_bits/fn_htrans.hpp"
00288   #include "armadillo_bits/fn_chol.hpp"
00289   #include "armadillo_bits/fn_qr.hpp"
00290   #include "armadillo_bits/fn_svd.hpp"
00291   #include "armadillo_bits/fn_solve.hpp"
00292   #include "armadillo_bits/fn_repmat.hpp"
00293   #include "armadillo_bits/fn_reshape.hpp"
00294   #include "armadillo_bits/fn_cov.hpp"
00295   #include "armadillo_bits/fn_cor.hpp"
00296   #include "armadillo_bits/fn_shuffle.hpp"
00297   #include "armadillo_bits/fn_prod.hpp"
00298   #include "armadillo_bits/fn_eps.hpp"
00299   #include "armadillo_bits/fn_pinv.hpp"
00300   #include "armadillo_bits/fn_rank.hpp"
00301   #include "armadillo_bits/fn_kron.hpp"
00302   #include "armadillo_bits/fn_flip.hpp"
00303   #include "armadillo_bits/fn_as_scalar.hpp"
00304   #include "armadillo_bits/fn_princomp.hpp"
00305   #include "armadillo_bits/fn_princomp_cov.hpp"
00306   #include "armadillo_bits/fn_cross.hpp"
00307   #include "armadillo_bits/fn_join.hpp"
00308   #include "armadillo_bits/fn_find.hpp"
00309   
00310   //
00311   // class meat
00312   
00313   #include "armadillo_bits/gemm.hpp"
00314   #include "armadillo_bits/gemv.hpp"
00315   #include "armadillo_bits/gemm_mixed.hpp"
00316   
00317   #include "armadillo_bits/eop_core_meat.hpp"
00318   #include "armadillo_bits/eop_cube_core_meat.hpp"
00319   
00320   #include "armadillo_bits/eglue_core_meat.hpp"
00321   #include "armadillo_bits/eglue_cube_core_meat.hpp"
00322   
00323   #include "armadillo_bits/podarray_meat.hpp"
00324   #include "armadillo_bits/auxlib_meat.hpp"
00325   
00326   #include "armadillo_bits/Mat_meat.hpp"
00327   #include "armadillo_bits/Col_meat.hpp"
00328   #include "armadillo_bits/Row_meat.hpp"
00329   #include "armadillo_bits/Cube_meat.hpp"
00330   #include "armadillo_bits/field_meat.hpp"
00331   #include "armadillo_bits/subview_meat.hpp"
00332   #include "armadillo_bits/subview_field_meat.hpp"
00333   #include "armadillo_bits/subview_cube_meat.hpp"
00334   #include "armadillo_bits/diagview_meat.hpp"
00335   
00336   #include "armadillo_bits/diskio_meat.hpp"
00337   #include "armadillo_bits/wall_clock_meat.hpp"
00338   #include "armadillo_bits/running_stat_meat.hpp"
00339   #include "armadillo_bits/running_stat_vec_meat.hpp"
00340   
00341   #include "armadillo_bits/op_diagmat_meat.hpp"
00342   #include "armadillo_bits/op_diagvec_meat.hpp"
00343   #include "armadillo_bits/op_dot_meat.hpp"
00344   #include "armadillo_bits/op_inv_meat.hpp"
00345   #include "armadillo_bits/op_htrans_meat.hpp"
00346   #include "armadillo_bits/op_max_meat.hpp"
00347   #include "armadillo_bits/op_min_meat.hpp"
00348   #include "armadillo_bits/op_mean_meat.hpp"
00349   #include "armadillo_bits/op_median_meat.hpp"
00350   #include "armadillo_bits/op_sort_meat.hpp"
00351   #include "armadillo_bits/op_sum_meat.hpp"
00352   #include "armadillo_bits/op_stddev_meat.hpp"
00353   #include "armadillo_bits/op_trans_meat.hpp"
00354   #include "armadillo_bits/op_var_meat.hpp"
00355   #include "armadillo_bits/op_repmat_meat.hpp"
00356   #include "armadillo_bits/op_reshape_meat.hpp"
00357   #include "armadillo_bits/op_cov_meat.hpp"
00358   #include "armadillo_bits/op_cor_meat.hpp"
00359   #include "armadillo_bits/op_shuffle_meat.hpp"
00360   #include "armadillo_bits/op_prod_meat.hpp"
00361   #include "armadillo_bits/op_pinv_meat.hpp"
00362   #include "armadillo_bits/op_dotext_meat.hpp"
00363   #include "armadillo_bits/op_flip_meat.hpp"
00364   #include "armadillo_bits/op_princomp_meat.hpp"
00365   #include "armadillo_bits/op_princomp_cov_meat.hpp"
00366   
00367   #include "armadillo_bits/glue_times_meat.hpp"
00368   #include "armadillo_bits/glue_cov_meat.hpp"
00369   #include "armadillo_bits/glue_cor_meat.hpp"
00370   #include "armadillo_bits/glue_kron_meat.hpp"
00371   #include "armadillo_bits/glue_cross_meat.hpp"
00372   #include "armadillo_bits/glue_join_meat.hpp"
00373   }
00374   
00375 #endif
00376