[Rcpp-commits] r963 - in pkg/RcppArmadillo/inst/include: . armadillo_bits

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Sat Apr 3 21:49:59 CEST 2010


Author: dmbates
Date: 2010-04-03 21:49:59 +0200 (Sat, 03 Apr 2010)
New Revision: 963

Added:
   pkg/RcppArmadillo/inst/include/armadillo
   pkg/RcppArmadillo/inst/include/armadillo_bits/
   pkg/RcppArmadillo/inst/include/armadillo_bits/Base.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/BaseCube.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Col_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Col_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Cube_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Cube_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/GlueCube_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/GlueCube_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Glue_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Glue_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Mat_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Mat_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/OpCube_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/OpCube_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Op_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Op_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Proxy.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/ProxyCube.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Row_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/Row_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/access.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/arma_ostream_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/arma_ostream_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/atlas_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/auxlib_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/auxlib_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/blas_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/cmath_wrap.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/compiler_setup.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/config.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/constants.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/debug.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/diagmat_proxy.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/diagview_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/diagview_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/diskio_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/diskio_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eGlueCube_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eGlueCube_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eGlue_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eGlue_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eOpCube_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eOpCube_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eOp_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eOp_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eglue_core_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eglue_core_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eglue_cube_core_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eglue_cube_core_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eglue_cube_misc.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eglue_misc.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eop_aux.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eop_core_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eop_core_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eop_cube_core_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/eop_cube_core_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/field_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/field_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_accu.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_as_scalar.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_chol.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_conv_to.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_cor.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_cov.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_cross.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_det.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_diagmat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_diagvec.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_dot.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_eig.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_eps.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_flip.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_htrans.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_inv.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_kron.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_log_det.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_lu.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_max.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_mean.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_median.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_min.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_misc.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_norm.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_ones.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_pinv.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_princomp.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_princomp_cov.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_prod.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_qr.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_rand.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_randn.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_rank.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_repmat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_reshape.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_shuffle.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_solve.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_sort.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_sort_index.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_stddev.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_sum.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_svd.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_trace.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_trans.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_trig.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_var.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/fn_zeros.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/format_wrap.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/forward_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/gemm.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/gemm_mixed.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/gemv.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_cor_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_cor_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_cov_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_cov_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_cross_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_cross_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_kron_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_kron_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_times_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_times_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/itpp_wrap.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/lapack_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_cor_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_cor_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_cov_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_cov_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_diagmat_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_diagmat_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_diagvec_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_diagvec_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_dot_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_dot_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_dotext_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_dotext_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_flip_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_flip_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_htrans_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_htrans_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_inv_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_inv_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_max_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_max_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_mean_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_mean_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_median_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_median_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_min_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_min_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_pinv_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_pinv_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_princomp_cov_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_princomp_cov_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_princomp_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_princomp_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_prod_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_prod_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_repmat_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_repmat_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_reshape_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_reshape_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_shuffle_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_shuffle_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_sort_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_sort_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_stddev_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_stddev_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_sum_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_sum_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_trans_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_trans_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_var_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_var_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_cube_div.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_cube_minus.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_cube_plus.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_cube_relational.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_cube_schur.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_cube_times.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_div.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_minus.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_ostream.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_plus.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_relational.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_schur.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/operator_times.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/podarray_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/podarray_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/promote_type.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/restrictors.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/running_stat_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/running_stat_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/running_stat_vec_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/running_stat_vec_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/static_assert.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/strip.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/subview_cube_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/subview_cube_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/subview_field_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/subview_field_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/subview_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/subview_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/syslib_proto.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/traits.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/typedef.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/unwrap.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/unwrap_cube.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/upgrade_val.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/version.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/wall_clock_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/wall_clock_proto.hpp
Log:
Add the armadillo headers

Added: pkg/RcppArmadillo/inst/include/armadillo
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo	                        (rev 0)
+++ pkg/RcppArmadillo/inst/include/armadillo	2010-04-03 19:49:59 UTC (rev 963)
@@ -0,0 +1,372 @@
+// Copyright (C) 2010 NICTA and the authors listed below
+// http://nicta.com.au
+// 
+// Authors:
+// - Conrad Sanderson (conradsand at ieee dot org)
+// 
+// This file is part of the Armadillo C++ library.
+// It is provided without any warranty of fitness
+// for any purpose. You can redistribute this file
+// and/or modify it under the terms of the GNU
+// Lesser General Public License (LGPL) as published
+// by the Free Software Foundation, either version 3
+// of the License or (at your option) any later version.
+// (see http://www.opensource.org/licenses for more info)
+
+
+#ifndef ARMA_INCLUDES
+#define ARMA_INCLUDES
+
+
+#include "armadillo_bits/config.hpp"
+#include "armadillo_bits/compiler_setup.hpp"
+
+#include <cstdlib>
+#include <cstring>
+#include <climits>
+#include <cmath>
+
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <stdexcept>
+#include <limits>
+#include <algorithm>
+#include <complex>
+#include <vector>
+
+
+#if defined(ARMA_HAVE_GETTIMEOFDAY)
+  #include <sys/time.h>
+  #undef ARMA_USE_BOOST_DATE
+#endif
+
+
+#if defined(ARMA_USE_BOOST)
+  #include <boost/math/complex.hpp>
+  #include <boost/math/special_functions/acosh.hpp>
+  #include <boost/math/special_functions/asinh.hpp>
+  #include <boost/math/special_functions/atanh.hpp>
+  #include <boost/current_function.hpp>
+
+  #if defined(ARMA_EXTRA_DEBUG)
+    #include <boost/format.hpp>
+    #define ARMA_USE_BOOST_FORMAT
+  #endif
+#endif
+
+
+#if defined(ARMA_USE_BOOST_DATE)
+  #include <boost/date_time/posix_time/posix_time.hpp>
+#endif
+
+
+#if defined(ARMA_USE_ATLAS)
+  #define ARMA_TMP_STRING(x) x
+
+  #define ARMA_ATLAS_INCLUDE_1 <ARMA_TMP_STRING(ARMA_ATLAS_INCLUDE_DIR)/ARMA_TMP_STRING(cblas.h)>
+  #define ARMA_ATLAS_INCLUDE_2 <ARMA_TMP_STRING(ARMA_ATLAS_INCLUDE_DIR)/ARMA_TMP_STRING(clapack.h)>
+  
+  extern "C"
+    {
+    #include ARMA_ATLAS_INCLUDE_1
+    #include ARMA_ATLAS_INCLUDE_2
+    }
+
+  #undef ARMA_TMP_STRING
+  #undef ARMA_ATLAS_INCLUDE_1
+  #undef ARMA_ATLAS_INCLUDE_2
+#endif
+
+
+#include "armadillo_bits/itpp_wrap.hpp"
+
+
+//! \namespace arma namespace for Armadillo classes and functions
+namespace arma
+  {
+  
+  // preliminaries
+  
+  #include "armadillo_bits/forward_proto.hpp"
+  #include "armadillo_bits/static_assert.hpp"
+  #include "armadillo_bits/typedef.hpp"
+  #include "armadillo_bits/format_wrap.hpp"
+  #include "armadillo_bits/cmath_wrap.hpp"
+  #include "armadillo_bits/constants.hpp"
+  #include "armadillo_bits/version.hpp"
+  #include "armadillo_bits/traits.hpp"
+  #include "armadillo_bits/promote_type.hpp"
+  #include "armadillo_bits/upgrade_val.hpp"
+  #include "armadillo_bits/restrictors.hpp"
+  #include "armadillo_bits/access.hpp"
+  
+  
+  //
+  // class prototypes
+  
+  #include "armadillo_bits/syslib_proto.hpp"
+  #include "armadillo_bits/podarray_proto.hpp"
+  
+  #include "armadillo_bits/blas_proto.hpp"
+  #include "armadillo_bits/lapack_proto.hpp"
+  #include "armadillo_bits/atlas_proto.hpp"
+  #include "armadillo_bits/auxlib_proto.hpp"
+  
+  #include "armadillo_bits/Base.hpp"
+  #include "armadillo_bits/BaseCube.hpp"
+  
+  #include "armadillo_bits/Mat_proto.hpp"
+  #include "armadillo_bits/Col_proto.hpp"
+  #include "armadillo_bits/Row_proto.hpp"
+  #include "armadillo_bits/Cube_proto.hpp"
+  
+  #include "armadillo_bits/field_proto.hpp"
+  #include "armadillo_bits/subview_proto.hpp"
+  #include "armadillo_bits/subview_field_proto.hpp"
+  #include "armadillo_bits/subview_cube_proto.hpp"
+  #include "armadillo_bits/diagview_proto.hpp"
+  
+  
+  #include "armadillo_bits/diskio_proto.hpp"
+  #include "armadillo_bits/wall_clock_proto.hpp"
+  #include "armadillo_bits/running_stat_proto.hpp"
+  #include "armadillo_bits/running_stat_vec_proto.hpp"
+  
+  #include "armadillo_bits/Op_proto.hpp"
+  #include "armadillo_bits/OpCube_proto.hpp"
+  
+  #include "armadillo_bits/eOp_proto.hpp"
+  #include "armadillo_bits/eOpCube_proto.hpp"
+  
+  
+  #include "armadillo_bits/Glue_proto.hpp"
+  #include "armadillo_bits/eGlue_proto.hpp"
+  
+  #include "armadillo_bits/GlueCube_proto.hpp"
+  #include "armadillo_bits/eGlueCube_proto.hpp"
+  
+  #include "armadillo_bits/eop_core_proto.hpp"
+  #include "armadillo_bits/eop_cube_core_proto.hpp"
+  
+  #include "armadillo_bits/eglue_core_proto.hpp"
+  #include "armadillo_bits/eglue_cube_core_proto.hpp"
+  
+  #include "armadillo_bits/op_diagmat_proto.hpp"
+  #include "armadillo_bits/op_diagvec_proto.hpp"
+  #include "armadillo_bits/op_dot_proto.hpp"
+  #include "armadillo_bits/op_inv_proto.hpp"
+  #include "armadillo_bits/op_htrans_proto.hpp"
+  #include "armadillo_bits/op_max_proto.hpp"
+  #include "armadillo_bits/op_min_proto.hpp"
+  #include "armadillo_bits/op_mean_proto.hpp"
+  #include "armadillo_bits/op_median_proto.hpp"
+  #include "armadillo_bits/op_sort_proto.hpp"
+  #include "armadillo_bits/op_sum_proto.hpp"
+  #include "armadillo_bits/op_stddev_proto.hpp"
+  #include "armadillo_bits/op_trans_proto.hpp"
+  #include "armadillo_bits/op_var_proto.hpp"
+  #include "armadillo_bits/op_repmat_proto.hpp"
+  #include "armadillo_bits/op_reshape_proto.hpp"
+  #include "armadillo_bits/op_cov_proto.hpp"
+  #include "armadillo_bits/op_cor_proto.hpp"
+  #include "armadillo_bits/op_shuffle_proto.hpp"
+  #include "armadillo_bits/op_prod_proto.hpp"
+  #include "armadillo_bits/op_pinv_proto.hpp"
+  #include "armadillo_bits/op_dotext_proto.hpp"
+  #include "armadillo_bits/op_flip_proto.hpp"
+  #include "armadillo_bits/op_princomp_proto.hpp"
+  #include "armadillo_bits/op_princomp_cov_proto.hpp"
+  
+  #include "armadillo_bits/glue_times_proto.hpp"
+  #include "armadillo_bits/glue_cov_proto.hpp"
+  #include "armadillo_bits/glue_cor_proto.hpp"
+  #include "armadillo_bits/glue_kron_proto.hpp"
+  #include "armadillo_bits/glue_cross_proto.hpp"
+  
+  
+  //
+  // debugging functions
+  
+  #include "armadillo_bits/debug.hpp"
+  
+  
+  //
+  // classes that underlay metaprogramming 
+  
+  #include "armadillo_bits/Proxy.hpp"
+  #include "armadillo_bits/ProxyCube.hpp"
+  
+  #include "armadillo_bits/diagmat_proxy.hpp"
+
+  #include "armadillo_bits/unwrap.hpp"
+  #include "armadillo_bits/unwrap_cube.hpp"
+
+  #include "armadillo_bits/strip.hpp"
+  
+  #include "armadillo_bits/Op_meat.hpp"
+  #include "armadillo_bits/OpCube_meat.hpp"
+  
+  #include "armadillo_bits/Glue_meat.hpp"
+  #include "armadillo_bits/GlueCube_meat.hpp"
+  
+  #include "armadillo_bits/eop_aux.hpp"
+  
+  #include "armadillo_bits/eOp_meat.hpp"
+  #include "armadillo_bits/eOpCube_meat.hpp"
+  
+  #include "armadillo_bits/eGlue_meat.hpp"
+  #include "armadillo_bits/eGlueCube_meat.hpp"
+  
+  #include "armadillo_bits/eglue_misc.hpp"
+  #include "armadillo_bits/eglue_cube_misc.hpp"
+  
+  
+  //
+  // ostream
+  
+  #include "armadillo_bits/arma_ostream_proto.hpp"
+  #include "armadillo_bits/arma_ostream_meat.hpp"
+  
+  
+  //
+  // operators
+  
+  #include "armadillo_bits/operator_plus.hpp"
+  #include "armadillo_bits/operator_minus.hpp"
+  #include "armadillo_bits/operator_times.hpp"
+  #include "armadillo_bits/operator_schur.hpp"
+  #include "armadillo_bits/operator_div.hpp"
+  #include "armadillo_bits/operator_relational.hpp"
+  
+  #include "armadillo_bits/operator_cube_plus.hpp"
+  #include "armadillo_bits/operator_cube_minus.hpp"
+  #include "armadillo_bits/operator_cube_times.hpp"
+  #include "armadillo_bits/operator_cube_schur.hpp"
+  #include "armadillo_bits/operator_cube_div.hpp"
+  #include "armadillo_bits/operator_cube_relational.hpp"
+  
+  #include "armadillo_bits/operator_ostream.hpp"
+  
+  
+  //
+  // user accessible functions
+  
+  // the order of the fn_*.hpp include files matters,
+  // as some files require functionality given in preceding files
+  
+  #include "armadillo_bits/fn_conv_to.hpp"
+  #include "armadillo_bits/fn_min.hpp"
+  #include "armadillo_bits/fn_max.hpp"
+  #include "armadillo_bits/fn_accu.hpp"
+  #include "armadillo_bits/fn_sum.hpp"
+  #include "armadillo_bits/fn_diagmat.hpp"
+  #include "armadillo_bits/fn_diagvec.hpp"
+  #include "armadillo_bits/fn_inv.hpp"
+  #include "armadillo_bits/fn_trace.hpp"
+  #include "armadillo_bits/fn_trans.hpp"
+  #include "armadillo_bits/fn_det.hpp"
+  #include "armadillo_bits/fn_log_det.hpp"
+  #include "armadillo_bits/fn_eig.hpp"
+  #include "armadillo_bits/fn_lu.hpp"
+  #include "armadillo_bits/fn_zeros.hpp"
+  #include "armadillo_bits/fn_ones.hpp"
+  #include "armadillo_bits/fn_misc.hpp"
+  #include "armadillo_bits/fn_norm.hpp"
+  #include "armadillo_bits/fn_dot.hpp"
+  #include "armadillo_bits/fn_rand.hpp"
+  #include "armadillo_bits/fn_randn.hpp"
+  #include "armadillo_bits/fn_trig.hpp"
+  #include "armadillo_bits/fn_mean.hpp"
+  #include "armadillo_bits/fn_median.hpp"
+  #include "armadillo_bits/fn_stddev.hpp"
+  #include "armadillo_bits/fn_var.hpp"
+  #include "armadillo_bits/fn_sort.hpp"
+  #include "armadillo_bits/fn_sort_index.hpp"
+  #include "armadillo_bits/fn_htrans.hpp"
+  #include "armadillo_bits/fn_chol.hpp"
+  #include "armadillo_bits/fn_qr.hpp"
+  #include "armadillo_bits/fn_svd.hpp"
+  #include "armadillo_bits/fn_solve.hpp"
+  #include "armadillo_bits/fn_repmat.hpp"
+  #include "armadillo_bits/fn_reshape.hpp"
+  #include "armadillo_bits/fn_cov.hpp"
+  #include "armadillo_bits/fn_cor.hpp"
+  #include "armadillo_bits/fn_shuffle.hpp"
+  #include "armadillo_bits/fn_prod.hpp"
+  #include "armadillo_bits/fn_eps.hpp"
+  #include "armadillo_bits/fn_pinv.hpp"
+  #include "armadillo_bits/fn_rank.hpp"
+  #include "armadillo_bits/fn_kron.hpp"
+  #include "armadillo_bits/fn_flip.hpp"
+  #include "armadillo_bits/fn_as_scalar.hpp"
+  #include "armadillo_bits/fn_princomp.hpp"
+  #include "armadillo_bits/fn_princomp_cov.hpp"
+  #include "armadillo_bits/fn_cross.hpp"
+  
+  //
+  // class meat
+  
+  #include "armadillo_bits/gemm.hpp"
+  #include "armadillo_bits/gemv.hpp"
+  #include "armadillo_bits/gemm_mixed.hpp"
+  
+  #include "armadillo_bits/eop_core_meat.hpp"
+  #include "armadillo_bits/eop_cube_core_meat.hpp"
+  
+  #include "armadillo_bits/eglue_core_meat.hpp"
+  #include "armadillo_bits/eglue_cube_core_meat.hpp"
+  
+  #include "armadillo_bits/podarray_meat.hpp"
+  #include "armadillo_bits/auxlib_meat.hpp"
+  
+  #include "armadillo_bits/Mat_meat.hpp"
+  #include "armadillo_bits/Col_meat.hpp"
+  #include "armadillo_bits/Row_meat.hpp"
+  #include "armadillo_bits/Cube_meat.hpp"
+  #include "armadillo_bits/field_meat.hpp"
+  #include "armadillo_bits/subview_meat.hpp"
+  #include "armadillo_bits/subview_field_meat.hpp"
+  #include "armadillo_bits/subview_cube_meat.hpp"
+  #include "armadillo_bits/diagview_meat.hpp"
+  
+  #include "armadillo_bits/diskio_meat.hpp"
+  #include "armadillo_bits/wall_clock_meat.hpp"
+  #include "armadillo_bits/running_stat_meat.hpp"
+  #include "armadillo_bits/running_stat_vec_meat.hpp"
+  
+  #include "armadillo_bits/op_diagmat_meat.hpp"
+  #include "armadillo_bits/op_diagvec_meat.hpp"
+  #include "armadillo_bits/op_dot_meat.hpp"
+  #include "armadillo_bits/op_inv_meat.hpp"
+  #include "armadillo_bits/op_htrans_meat.hpp"
+  #include "armadillo_bits/op_max_meat.hpp"
+  #include "armadillo_bits/op_min_meat.hpp"
+  #include "armadillo_bits/op_mean_meat.hpp"
+  #include "armadillo_bits/op_median_meat.hpp"
+  #include "armadillo_bits/op_sort_meat.hpp"
+  #include "armadillo_bits/op_sum_meat.hpp"
+  #include "armadillo_bits/op_stddev_meat.hpp"
+  #include "armadillo_bits/op_trans_meat.hpp"
+  #include "armadillo_bits/op_var_meat.hpp"
+  #include "armadillo_bits/op_repmat_meat.hpp"
+  #include "armadillo_bits/op_reshape_meat.hpp"
+  #include "armadillo_bits/op_cov_meat.hpp"
+  #include "armadillo_bits/op_cor_meat.hpp"
+  #include "armadillo_bits/op_shuffle_meat.hpp"
+  #include "armadillo_bits/op_prod_meat.hpp"
+  #include "armadillo_bits/op_pinv_meat.hpp"
+  #include "armadillo_bits/op_dotext_meat.hpp"
+  #include "armadillo_bits/op_flip_meat.hpp"
+  #include "armadillo_bits/op_princomp_meat.hpp"
+  #include "armadillo_bits/op_princomp_cov_meat.hpp"
+  
+  #include "armadillo_bits/glue_times_meat.hpp"
+  #include "armadillo_bits/glue_cov_meat.hpp"
+  #include "armadillo_bits/glue_cor_meat.hpp"
+  #include "armadillo_bits/glue_kron_meat.hpp"
+  #include "armadillo_bits/glue_cross_meat.hpp"
+  }
+  
+#endif
+

Added: pkg/RcppArmadillo/inst/include/armadillo_bits/Base.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/Base.hpp	                        (rev 0)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/Base.hpp	2010-04-03 19:49:59 UTC (rev 963)
@@ -0,0 +1,57 @@
+// Copyright (C) 2010 NICTA and the authors listed below
+// http://nicta.com.au
+// 
+// Authors:
+// - Conrad Sanderson (conradsand at ieee dot org)
+// 
+// This file is part of the Armadillo C++ library.
+// It is provided without any warranty of fitness
+// for any purpose. You can redistribute this file
+// and/or modify it under the terms of the GNU
+// Lesser General Public License (LGPL) as published
+// by the Free Software Foundation, either version 3
+// of the License or (at your option) any later version.
+// (see http://www.opensource.org/licenses for more info)
+
+
+//! \addtogroup Base
+//! @{
+
+
+
+//! Class for static polymorphism, modelled after the "Curiously Recurring Template Pattern" (CRTP).
+//! Used for type-safe downcasting in functions that restrict their input(s) to be classes that are
+//! derived from Base (e.g. Mat, Op, Glue, diagview, subview).
+//! A Base object can be converted to a Mat object by the unwrap class.
+
+template<typename elem_type, typename derived>
+struct Base
+  {
+  
+  arma_inline
+  const derived&
+  get_ref() const
+    {
+    return static_cast<const derived&>(*this);
+    }
+
+  };
+
+
+
+template<typename elem_type, typename derived>
+struct BaseVec
+  {
+  
+  arma_inline
+  const derived&
+  get_ref() const
+    {
+    return static_cast<const derived&>(*this);
+    }
+
+  };
+
+
+
+//! @}

Added: pkg/RcppArmadillo/inst/include/armadillo_bits/BaseCube.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/BaseCube.hpp	                        (rev 0)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/BaseCube.hpp	2010-04-03 19:49:59 UTC (rev 963)
@@ -0,0 +1,38 @@
+// Copyright (C) 2010 NICTA and the authors listed below
+// http://nicta.com.au
+// 
+// Authors:
+// - Conrad Sanderson (conradsand at ieee dot org)
+// 
+// This file is part of the Armadillo C++ library.
+// It is provided without any warranty of fitness
+// for any purpose. You can redistribute this file
+// and/or modify it under the terms of the GNU
+// Lesser General Public License (LGPL) as published
+// by the Free Software Foundation, either version 3
+// of the License or (at your option) any later version.
+// (see http://www.opensource.org/licenses for more info)
+
+
+//! \addtogroup BaseCube
+//! @{
+
+
+
+//! Analog of the Base class, intended for cubes
+template<typename elem_type, typename derived>
+struct BaseCube
+  {
+  
+  arma_inline
+  const derived&
+  get_ref() const
+    {
+    return static_cast<const derived&>(*this);
+    }
+
+  };
+
+
+
+//! @}

Added: pkg/RcppArmadillo/inst/include/armadillo_bits/Col_meat.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/Col_meat.hpp	                        (rev 0)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/Col_meat.hpp	2010-04-03 19:49:59 UTC (rev 963)
@@ -0,0 +1,799 @@
+// Copyright (C) 2010 NICTA and the authors listed below
+// http://nicta.com.au
+// 
+// Authors:
+// - Conrad Sanderson (conradsand at ieee dot org)
+// 
+// This file is part of the Armadillo C++ library.
+// It is provided without any warranty of fitness
+// for any purpose. You can redistribute this file
+// and/or modify it under the terms of the GNU
+// Lesser General Public License (LGPL) as published
+// by the Free Software Foundation, either version 3
+// of the License or (at your option) any later version.
+// (see http://www.opensource.org/licenses for more info)
+
+
+//! \addtogroup Col
+//! @{
+
+
+//! construct an empty column vector
+template<typename eT>
+inline
+Col<eT>::Col()
+  : Mat<eT>()
+  {
+  arma_extra_debug_sigprint();
+  }
+
+
+
+//! construct a column vector with the specified number of n_elem
+template<typename eT>
+inline
+Col<eT>::Col(const u32 in_n_elem)
+  : Mat<eT>(in_n_elem, 1)
+  {
+  arma_extra_debug_sigprint();
+  }
+
+
+
+template<typename eT>
+inline
+Col<eT>::Col(const u32 in_n_rows, const u32 in_n_cols)
+  : Mat<eT>(in_n_rows, in_n_cols)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from specified text
+template<typename eT>
+inline
+Col<eT>::Col(const char* text)
+  : Mat<eT>(text)
+  {
+  arma_extra_debug_sigprint();
+  
+  std::swap( access::rw(Mat<eT>::n_rows), access::rw(Mat<eT>::n_cols) );
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from specified text
+template<typename eT>
+inline
+const Col<eT>&
+Col<eT>::operator=(const char* text)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator=(text);
+  
+  std::swap( access::rw(Mat<eT>::n_rows), access::rw(Mat<eT>::n_cols) );
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+//! construct a column vector from specified text
+template<typename eT>
+inline
+Col<eT>::Col(const std::string& text)
+  : Mat<eT>(text)
+  {
+  arma_extra_debug_sigprint();
+  
+  std::swap( access::rw(Mat<eT>::n_rows), access::rw(Mat<eT>::n_cols) );
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from specified text
+template<typename eT>
+inline
+const Col<eT>&
+Col<eT>::operator=(const std::string& text)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator=(text);
+  
+  std::swap( access::rw(Mat<eT>::n_rows), access::rw(Mat<eT>::n_cols) );
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+//! construct a column vector from a given column vector
+template<typename eT>
+inline
+Col<eT>::Col(const Col<eT>& X)
+  : Mat<eT>(X)
+  {
+  arma_extra_debug_sigprint();
+  }
+
+
+
+//! construct a column vector from a given column vector
+template<typename eT>
+inline
+const Col<eT>&
+Col<eT>::operator=(const Col<eT>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator=(X);
+  
+  return *this;
+  }
+
+
+
+//! construct a column vector from a given matrix; the matrix must have exactly one column
+template<typename eT>
+inline
+Col<eT>::Col(const Mat<eT>& X)
+  : Mat<eT>(X)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from a given matrix; the matrix must have exactly one column
+template<typename eT>
+inline
+const Col<eT>&
+Col<eT>::operator=(const Mat<eT>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+template<typename eT>
+inline
+const Col<eT>&
+Col<eT>::operator*=(const Mat<eT>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator*=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+//! construct a column vector from a given auxiliary array of eTs
+template<typename eT>
+inline
+Col<eT>::Col(eT* aux_mem, const u32 aux_n_rows, const u32 aux_n_cols, const bool copy_aux_mem)
+  : Mat<eT>(aux_mem, aux_n_rows, aux_n_cols, copy_aux_mem)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from a given auxiliary array of eTs
+template<typename eT>
+inline
+Col<eT>::Col(const eT* aux_mem, const u32 aux_n_rows, const u32 aux_n_cols)
+  : Mat<eT>(aux_mem, aux_n_rows, aux_n_cols)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from a given auxiliary array of eTs
+template<typename eT>
+inline
+Col<eT>::Col(eT* aux_mem, const u32 aux_length, const bool copy_aux_mem)
+  : Mat<eT>(aux_mem, aux_length, 1, copy_aux_mem)
+  {
+  arma_extra_debug_sigprint();
+  
+//   set_size(aux_length, 1);
+// 
+//   arma_check( (Mat<eT>::n_elem != aux_length), "Col::Col(): don't know how to handle the given array" );
+// 
+//   syslib::copy_elem( Mat<eT>::memptr(), aux_mem, Mat<eT>::n_elem );
+  }
+
+
+
+//! construct a column vector from a given auxiliary array of eTs
+template<typename eT>
+inline
+Col<eT>::Col(const eT* aux_mem, const u32 aux_length)
+  : Mat<eT>(aux_mem, aux_length, 1)
+  {
+  arma_extra_debug_sigprint();
+  
+//   set_size(aux_length, 1);
+// 
+//   arma_check( (Mat<eT>::n_elem != aux_length), "Col::Col(): don't know how to handle the given array" );
+// 
+//   syslib::copy_elem( Mat<eT>::memptr(), aux_mem, Mat<eT>::n_elem );
+  }
+
+
+
+template<typename eT>
+template<typename T1, typename T2>
+inline
+Col<eT>::Col
+  (
+  const Base<typename Col<eT>::pod_type, T1>& A,
+  const Base<typename Col<eT>::pod_type, T2>& B
+  )
+  : Mat<eT>(A,B)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from given a submatrix; the submatrix must have exactly one column
+template<typename eT>
+inline
+Col<eT>::Col(const subview<eT>& X)
+  : Mat<eT>(X)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from given a submatrix; the submatrix must have exactly one column
+template<typename eT>
+inline
+const Col<eT>&
+Col<eT>::operator=(const subview<eT>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+template<typename eT>
+inline
+const Col<eT>&
+Col<eT>::operator*=(const subview<eT>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator*=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+//! construct a column vector from given a subcube; the subcube must have exactly one column
+template<typename eT>
+inline
+Col<eT>::Col(const subview_cube<eT>& X)
+  : Mat<eT>(X)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from given a subcube; the subcube must have exactly one column
+template<typename eT>
+inline
+const Col<eT>&
+Col<eT>::operator=(const subview_cube<eT>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+template<typename eT>
+inline
+const Col<eT>&
+Col<eT>::operator*=(const subview_cube<eT>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator*=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+//! construct a column vector from given a diagview
+template<typename eT>
+inline
+Col<eT>::Col(const diagview<eT>& X)
+  : Mat<eT>(X)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from given a diagview
+template<typename eT>
+inline
+const Col<eT>&
+Col<eT>::operator=(const diagview<eT>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+template<typename eT>
+inline
+const Col<eT>&
+Col<eT>::operator*=(const diagview<eT>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator*=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+template<typename eT>
+arma_inline
+eT&
+Col<eT>::row(const u32 row_num)
+  {
+  arma_debug_check( (row_num >= Mat<eT>::n_rows), "Col::row(): out of bounds" );
+  
+  return access::rw(Mat<eT>::mem[row_num]);
+  }
+
+
+
+template<typename eT>
+arma_inline
+eT
+Col<eT>::row(const u32 row_num)
+  const
+  {
+  arma_debug_check( (row_num >= Mat<eT>::n_rows), "Col::row(): out of bounds" );
+  
+  return Mat<eT>::mem[row_num];
+  }
+
+
+
+template<typename eT>
+arma_inline
+subview_col<eT>
+Col<eT>::rows(const u32 in_row1, const u32 in_row2)
+  {
+  arma_debug_check( ( (in_row1 > in_row2) || (in_row2 >= Mat<eT>::n_rows) ), "Col::rows(): indices out of bounds or incorrectly used");
+  
+  return subview_col<eT>(*this, 0, in_row1, in_row2);
+  }
+
+
+
+template<typename eT>
+arma_inline
+const subview_col<eT>
+Col<eT>::rows(const u32 in_row1, const u32 in_row2)
+  const
+  {
+  arma_debug_check( ( (in_row1 > in_row2) || (in_row2 >= Mat<eT>::n_rows) ), "Col::rows(): indices out of bounds or incorrectly used");
+  
+  return subview_col<eT>(*this, 0, in_row1, in_row2);
+  }
+
+
+
+//! construct a column vector from Op, i.e. run the previously delayed operations; the result of the operations must have exactly one column
+template<typename eT>
+template<typename T1, typename op_type>
+inline
+Col<eT>::Col(const Op<T1, op_type>& X)
+  : Mat<eT>(X)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from Op, i.e. run the previously delayed operations; the result of the operations must have exactly one column
+template<typename eT>
+template<typename T1, typename op_type>
+inline
+const Col<eT>&
+Col<eT>::operator=(const Op<T1, op_type>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator=(X);
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col::operator=(): given matrix can't be interpreted as a column vector" );
+  return *this;
+  }
+
+
+
+template<typename eT>
+template<typename T1, typename op_type>
+inline
+const Col<eT>&
+Col<eT>::operator*=(const Op<T1, op_type>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator*=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col::operator=(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+template<typename eT>
+template<typename T1, typename eop_type>
+inline
+Col<eT>::Col(const eOp<T1, eop_type>& X)
+  : Mat<eT>(X)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+template<typename eT>
+template<typename T1, typename eop_type>
+inline
+const Col<eT>&
+Col<eT>::operator=(const eOp<T1, eop_type>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator=(X);
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col::operator=(): given matrix can't be interpreted as a column vector" );
+  return *this;
+  }
+
+
+
+template<typename eT>
+template<typename T1, typename eop_type>
+inline
+const Col<eT>&
+Col<eT>::operator*=(const eOp<T1, eop_type>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator*=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col::operator=(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+//! construct a column vector from Glue, i.e. run the previously delayed operations; the result of the operations must have exactly one column
+template<typename eT>
+template<typename T1, typename T2, typename glue_type>
+inline
+Col<eT>::Col(const Glue<T1, T2, glue_type>& X)
+  : Mat<eT>(X)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+//! construct a column vector from Glue, i.e. run the previously delayed operations; the result of the operations must have exactly one column
+template<typename eT>
+template<typename T1, typename T2, typename glue_type>
+inline
+const Col<eT>&
+Col<eT>::operator=(const Glue<T1, T2, glue_type>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+template<typename eT>
+template<typename T1, typename T2, typename glue_type>
+inline
+const Col<eT>&
+Col<eT>::operator*=(const Glue<T1, T2, glue_type>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator*=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+template<typename eT>
+template<typename T1, typename T2, typename eglue_type>
+inline
+Col<eT>::Col(const eGlue<T1, T2, eglue_type>& X)
+  : Mat<eT>(X)
+  {
+  arma_extra_debug_sigprint();
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+template<typename eT>
+template<typename T1, typename T2, typename eglue_type>
+inline
+const Col<eT>&
+Col<eT>::operator=(const eGlue<T1, T2, eglue_type>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+template<typename eT>
+template<typename T1, typename T2, typename eglue_type>
+inline
+const Col<eT>&
+Col<eT>::operator*=(const eGlue<T1, T2, eglue_type>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::operator*=(X);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  
+  return *this;
+  }
+
+
+
+//! change the number of rows
+template<typename eT>
+inline
+void
+Col<eT>::set_size(const u32 in_n_elem)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::set_size(in_n_elem,1);
+  }
+
+
+
+//! change the number of n_rows  (this function re-implements mat::set_size() in order to check the number of columns)
+template<typename eT>
+inline
+void
+Col<eT>::set_size(const u32 in_n_rows, const u32 in_n_cols)
+  {
+  arma_extra_debug_sigprint();
+
+  // min() is used in case in_n_cols is zero
+  Mat<eT>::set_size( in_n_rows, (std::min)( u32(1), in_n_cols ) );
+  
+  arma_debug_check( (in_n_cols > 1), "Col::set_size(): incompatible dimensions" );
+  }
+
+
+
+//! change the number of n_rows  (this function re-implements mat::copy_size() in order to check the number of columns)
+template<typename eT>
+template<typename eT2>
+inline
+void
+Col<eT>::copy_size(const Mat<eT2>& x)
+  {
+  arma_extra_debug_sigprint();
+  
+  // min() is used in case x.n_cols is zero
+  Mat<eT>::set_size( x.n_rows, (std::min)( u32(1), x.n_cols ) );
+  
+  arma_debug_check( (x.n_cols > 1), "Col::copy_size(): incompatible dimensions" );
+  }
+
+
+
+template<typename eT>
+inline
+void
+Col<eT>::zeros()
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::zeros();
+  }
+
+
+
+template<typename eT>
+inline
+void
+Col<eT>::zeros(const u32 in_n_elem)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::zeros(in_n_elem, 1);
+  }
+
+
+
+template<typename eT>
+inline
+void
+Col<eT>::zeros(const u32 in_n_rows, const u32 in_n_cols)
+  {
+  arma_extra_debug_sigprint();
+  
+  // min() is used in case in_n_cols is zero
+  Mat<eT>::zeros( in_n_rows, (std::min)( u32(1), in_n_cols ) );
+  
+  arma_debug_check( (in_n_cols > 1), "Col::zeros(): incompatible dimensions" );
+  }
+
+
+
+template<typename eT>
+inline
+void
+Col<eT>::ones()
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::ones();
+  }
+
+
+
+template<typename eT>
+inline
+void
+Col<eT>::ones(const u32 in_n_elem)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::ones(in_n_elem, 1);
+  }
+
+
+
+template<typename eT>
+inline
+void
+Col<eT>::ones(const u32 in_n_rows, const u32 in_n_cols)
+  {
+  arma_extra_debug_sigprint();
+  
+  // min() is used in case in_n_cols is zero
+  Mat<eT>::ones( in_n_rows, (std::min)( u32(1), in_n_cols ) );
+  
+  arma_debug_check( (in_n_cols > 1), "Col::ones(): incompatible dimensions" );
+  }
+
+
+
+template<typename eT>
+inline
+void
+Col<eT>::load(const std::string name, const file_type type)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::load(name,type);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+
+template<typename eT>
+inline
+void
+Col<eT>::load(std::istream& is, const file_type type)
+  {
+  arma_extra_debug_sigprint();
+  
+  Mat<eT>::load(is, type);
+  
+  arma_debug_check( (Mat<eT>::n_cols > 1), "Col(): incompatible dimensions" );
+  }
+
+
+//! @}

Added: pkg/RcppArmadillo/inst/include/armadillo_bits/Col_proto.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/Col_proto.hpp	                        (rev 0)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/Col_proto.hpp	2010-04-03 19:49:59 UTC (rev 963)
@@ -0,0 +1,110 @@
+// Copyright (C) 2010 NICTA and the authors listed below
+// http://nicta.com.au
+// 
+// Authors:
+// - Conrad Sanderson (conradsand at ieee dot org)
+// 
+// This file is part of the Armadillo C++ library.
+// It is provided without any warranty of fitness
+// for any purpose. You can redistribute this file
+// and/or modify it under the terms of the GNU
+// Lesser General Public License (LGPL) as published
+// by the Free Software Foundation, either version 3
+// of the License or (at your option) any later version.
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/rcpp -r 963


More information about the Rcpp-commits mailing list