[Rcpp-commits] r3028 - in pkg/RcppArmadillo/inst/include: . armadillo_bits
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Tue May 17 03:15:31 CEST 2011
Author: edd
Date: 2011-05-17 03:15:31 +0200 (Tue, 17 May 2011)
New Revision: 3028
Modified:
pkg/RcppArmadillo/inst/include/armadillo
pkg/RcppArmadillo/inst/include/armadillo_bits/Col_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/Mat_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/Row_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/arma_ostream_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/arma_version.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/arrayops_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/auxlib_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/diagview_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/diskio_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/fn_det.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/fn_elem.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/fn_inv.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/fn_log_det.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_ones.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/fn_randn.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/fn_randu.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/fn_trans.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/fn_zeros.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_join_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/glue_times_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/op_cumsum_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/op_htrans_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/op_inv_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/op_median_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/op_prod_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/op_repmat_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/op_reshape_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/op_stddev_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/op_sum_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/op_trimat_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/op_var_meat.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/subview_meat.hpp
pkg/RcppArmadillo/inst/include/armadillo_bits/unwrap.hpp
Log:
commit three of Armadillo 1.99.1: modified files
Modified: pkg/RcppArmadillo/inst/include/armadillo
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo 2011-05-17 01:14:47 UTC (rev 3027)
+++ pkg/RcppArmadillo/inst/include/armadillo 2011-05-17 01:15:31 UTC (rev 3028)
@@ -105,9 +105,10 @@
// preliminaries
- #include "armadillo_bits/forward_proto.hpp"
+ #include "armadillo_bits/forward_bones.hpp"
#include "armadillo_bits/arma_static_assert.hpp"
#include "armadillo_bits/typedef.hpp"
+ #include "armadillo_bits/typedef_u64.hpp"
#include "armadillo_bits/format_wrap.hpp"
#include "armadillo_bits/arma_version.hpp"
#include "armadillo_bits/arma_config.hpp"
@@ -126,100 +127,101 @@
#include "armadillo_bits/Base.hpp"
#include "armadillo_bits/BaseCube.hpp"
- #include "armadillo_bits/blas_proto.hpp"
- #include "armadillo_bits/lapack_proto.hpp"
- #include "armadillo_bits/atlas_proto.hpp"
+ #include "armadillo_bits/blas_bones.hpp"
+ #include "armadillo_bits/lapack_bones.hpp"
+ #include "armadillo_bits/atlas_bones.hpp"
- #include "armadillo_bits/arrayops_proto.hpp"
- #include "armadillo_bits/podarray_proto.hpp"
- #include "armadillo_bits/auxlib_proto.hpp"
+ #include "armadillo_bits/arrayops_bones.hpp"
+ #include "armadillo_bits/podarray_bones.hpp"
+ #include "armadillo_bits/auxlib_bones.hpp"
- #include "armadillo_bits/injector_proto.hpp"
+ #include "armadillo_bits/injector_bones.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/Mat_bones.hpp"
+ #include "armadillo_bits/Col_bones.hpp"
+ #include "armadillo_bits/Row_bones.hpp"
+ #include "armadillo_bits/Cube_bones.hpp"
#include "armadillo_bits/typedef_fixed.hpp"
- #include "armadillo_bits/field_proto.hpp"
- #include "armadillo_bits/subview_proto.hpp"
- #include "armadillo_bits/subview_elem1_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/field_bones.hpp"
+ #include "armadillo_bits/subview_bones.hpp"
+ #include "armadillo_bits/subview_elem1_bones.hpp"
+ #include "armadillo_bits/subview_field_bones.hpp"
+ #include "armadillo_bits/subview_cube_bones.hpp"
+ #include "armadillo_bits/diagview_bones.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/diskio_bones.hpp"
+ #include "armadillo_bits/wall_clock_bones.hpp"
+ #include "armadillo_bits/running_stat_bones.hpp"
+ #include "armadillo_bits/running_stat_vec_bones.hpp"
- #include "armadillo_bits/Op_proto.hpp"
- #include "armadillo_bits/OpCube_proto.hpp"
+ #include "armadillo_bits/Op_bones.hpp"
+ #include "armadillo_bits/OpCube_bones.hpp"
- #include "armadillo_bits/eOp_proto.hpp"
- #include "armadillo_bits/eOpCube_proto.hpp"
+ #include "armadillo_bits/eOp_bones.hpp"
+ #include "armadillo_bits/eOpCube_bones.hpp"
- #include "armadillo_bits/mtOp_proto.hpp"
- #include "armadillo_bits/mtOpCube_proto.hpp"
+ #include "armadillo_bits/mtOp_bones.hpp"
+ #include "armadillo_bits/mtOpCube_bones.hpp"
- #include "armadillo_bits/Glue_proto.hpp"
- #include "armadillo_bits/eGlue_proto.hpp"
- #include "armadillo_bits/mtGlue_proto.hpp"
+ #include "armadillo_bits/Glue_bones.hpp"
+ #include "armadillo_bits/eGlue_bones.hpp"
+ #include "armadillo_bits/mtGlue_bones.hpp"
- #include "armadillo_bits/GlueCube_proto.hpp"
- #include "armadillo_bits/eGlueCube_proto.hpp"
- #include "armadillo_bits/mtGlueCube_proto.hpp"
+ #include "armadillo_bits/GlueCube_bones.hpp"
+ #include "armadillo_bits/eGlueCube_bones.hpp"
+ #include "armadillo_bits/mtGlueCube_bones.hpp"
- #include "armadillo_bits/eop_core_proto.hpp"
- #include "armadillo_bits/eglue_core_proto.hpp"
+ #include "armadillo_bits/eop_core_bones.hpp"
+ #include "armadillo_bits/eglue_core_bones.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/op_misc_proto.hpp"
- #include "armadillo_bits/op_relational_proto.hpp"
- #include "armadillo_bits/op_find_proto.hpp"
- #include "armadillo_bits/op_chol_proto.hpp"
- #include "armadillo_bits/op_cx_scalar_proto.hpp"
- #include "armadillo_bits/op_trimat_proto.hpp"
- #include "armadillo_bits/op_cumsum_proto.hpp"
+ #include "armadillo_bits/op_diagmat_bones.hpp"
+ #include "armadillo_bits/op_diagvec_bones.hpp"
+ #include "armadillo_bits/op_dot_bones.hpp"
+ #include "armadillo_bits/op_inv_bones.hpp"
+ #include "armadillo_bits/op_htrans_bones.hpp"
+ #include "armadillo_bits/op_max_bones.hpp"
+ #include "armadillo_bits/op_min_bones.hpp"
+ #include "armadillo_bits/op_mean_bones.hpp"
+ #include "armadillo_bits/op_median_bones.hpp"
+ #include "armadillo_bits/op_sort_bones.hpp"
+ #include "armadillo_bits/op_sum_bones.hpp"
+ #include "armadillo_bits/op_stddev_bones.hpp"
+ #include "armadillo_bits/op_strans_bones.hpp"
+ #include "armadillo_bits/op_var_bones.hpp"
+ #include "armadillo_bits/op_repmat_bones.hpp"
+ #include "armadillo_bits/op_reshape_bones.hpp"
+ #include "armadillo_bits/op_cov_bones.hpp"
+ #include "armadillo_bits/op_cor_bones.hpp"
+ #include "armadillo_bits/op_shuffle_bones.hpp"
+ #include "armadillo_bits/op_prod_bones.hpp"
+ #include "armadillo_bits/op_pinv_bones.hpp"
+ #include "armadillo_bits/op_dotext_bones.hpp"
+ #include "armadillo_bits/op_flip_bones.hpp"
+ #include "armadillo_bits/op_princomp_bones.hpp"
+ #include "armadillo_bits/op_princomp_cov_bones.hpp"
+ #include "armadillo_bits/op_misc_bones.hpp"
+ #include "armadillo_bits/op_relational_bones.hpp"
+ #include "armadillo_bits/op_find_bones.hpp"
+ #include "armadillo_bits/op_chol_bones.hpp"
+ #include "armadillo_bits/op_cx_scalar_bones.hpp"
+ #include "armadillo_bits/op_trimat_bones.hpp"
+ #include "armadillo_bits/op_cumsum_bones.hpp"
+ #include "armadillo_bits/op_symmat_bones.hpp"
- #include "armadillo_bits/glue_times_proto.hpp"
- #include "armadillo_bits/glue_mixed_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"
- #include "armadillo_bits/glue_join_proto.hpp"
- #include "armadillo_bits/glue_relational_proto.hpp"
- #include "armadillo_bits/glue_solve_proto.hpp"
- #include "armadillo_bits/glue_conv_proto.hpp"
- #include "armadillo_bits/glue_toeplitz_proto.hpp"
+ #include "armadillo_bits/glue_times_bones.hpp"
+ #include "armadillo_bits/glue_mixed_bones.hpp"
+ #include "armadillo_bits/glue_cov_bones.hpp"
+ #include "armadillo_bits/glue_cor_bones.hpp"
+ #include "armadillo_bits/glue_kron_bones.hpp"
+ #include "armadillo_bits/glue_cross_bones.hpp"
+ #include "armadillo_bits/glue_join_bones.hpp"
+ #include "armadillo_bits/glue_relational_bones.hpp"
+ #include "armadillo_bits/glue_solve_bones.hpp"
+ #include "armadillo_bits/glue_conv_bones.hpp"
+ #include "armadillo_bits/glue_toeplitz_bones.hpp"
//
// debugging functions
@@ -268,7 +270,7 @@
//
// ostream
- #include "armadillo_bits/arma_ostream_proto.hpp"
+ #include "armadillo_bits/arma_ostream_bones.hpp"
#include "armadillo_bits/arma_ostream_meat.hpp"
@@ -314,6 +316,7 @@
#include "armadillo_bits/fn_lu.hpp"
#include "armadillo_bits/fn_zeros.hpp"
#include "armadillo_bits/fn_ones.hpp"
+ #include "armadillo_bits/fn_eye.hpp"
#include "armadillo_bits/fn_misc.hpp"
#include "armadillo_bits/fn_elem.hpp"
#include "armadillo_bits/fn_norm.hpp"
@@ -327,7 +330,7 @@
#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_strans.hpp"
#include "armadillo_bits/fn_chol.hpp"
#include "armadillo_bits/fn_qr.hpp"
#include "armadillo_bits/fn_svd.hpp"
@@ -354,12 +357,14 @@
#include "armadillo_bits/fn_toeplitz.hpp"
#include "armadillo_bits/fn_trimat.hpp"
#include "armadillo_bits/fn_cumsum.hpp"
+ #include "armadillo_bits/fn_symmat.hpp"
+ #include "armadillo_bits/fn_syl_lyap.hpp"
//
// class meat
+ #include "armadillo_bits/gemv.hpp"
#include "armadillo_bits/gemm.hpp"
- #include "armadillo_bits/gemv.hpp"
#include "armadillo_bits/gemm_mixed.hpp"
#include "armadillo_bits/eop_core_meat.hpp"
@@ -399,7 +404,7 @@
#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_strans_meat.hpp"
#include "armadillo_bits/op_var_meat.hpp"
#include "armadillo_bits/op_repmat_meat.hpp"
#include "armadillo_bits/op_reshape_meat.hpp"
@@ -419,6 +424,7 @@
#include "armadillo_bits/op_cx_scalar_meat.hpp"
#include "armadillo_bits/op_trimat_meat.hpp"
#include "armadillo_bits/op_cumsum_meat.hpp"
+ #include "armadillo_bits/op_symmat_meat.hpp"
#include "armadillo_bits/glue_times_meat.hpp"
#include "armadillo_bits/glue_mixed_meat.hpp"
Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/Col_meat.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/Col_meat.hpp 2011-05-17 01:14:47 UTC (rev 3027)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/Col_meat.hpp 2011-05-17 01:15:31 UTC (rev 3028)
@@ -549,24 +549,12 @@
{
arma_extra_debug_sigprint_this(this);
- if(fixed_n_elem > 0)
- {
- access::rw(Mat<eT>::n_rows) = fixed_n_elem;
- access::rw(Mat<eT>::n_cols) = 1;
- access::rw(Mat<eT>::n_elem) = fixed_n_elem;
- access::rw(Mat<eT>::vec_state) = 1;
- access::rw(Mat<eT>::mem_state) = 3;
- access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : Mat<eT>::mem_local;
- }
- else
- {
- access::rw(Mat<eT>::n_rows) = 0;
- access::rw(Mat<eT>::n_cols) = 0;
- access::rw(Mat<eT>::n_elem) = 0;
- access::rw(Mat<eT>::vec_state) = 1;
- access::rw(Mat<eT>::mem_state) = 3;
- access::rw(Mat<eT>::mem) = 0;
- }
+ access::rw(Mat<eT>::n_rows) = fixed_n_elem;
+ access::rw(Mat<eT>::n_cols) = 1;
+ access::rw(Mat<eT>::n_elem) = fixed_n_elem;
+ access::rw(Mat<eT>::vec_state) = 1;
+ access::rw(Mat<eT>::mem_state) = 3;
+ access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : Mat<eT>::mem_local;
}
@@ -578,33 +566,21 @@
{
arma_extra_debug_sigprint_this(this);
- if(fixed_n_elem > 0)
+ access::rw(Mat<eT>::n_rows) = fixed_n_elem;
+ access::rw(Mat<eT>::n_cols) = 1;
+ access::rw(Mat<eT>::n_elem) = fixed_n_elem;
+ access::rw(Mat<eT>::vec_state) = 1;
+ access::rw(Mat<eT>::mem_state) = 3;
+
+ if(copy_aux_mem == true)
{
- access::rw(Mat<eT>::n_rows) = fixed_n_elem;
- access::rw(Mat<eT>::n_cols) = 1;
- access::rw(Mat<eT>::n_elem) = fixed_n_elem;
- access::rw(Mat<eT>::vec_state) = 1;
- access::rw(Mat<eT>::mem_state) = 3;
+ access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : Mat<eT>::mem_local;
- if(copy_aux_mem == true)
- {
- access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : Mat<eT>::mem_local;
-
- arrayops::copy( const_cast<eT*>(Mat<eT>::mem), aux_mem, fixed_n_elem );
- }
- else
- {
- access::rw(Mat<eT>::mem) = aux_mem;
- }
+ arrayops::copy( const_cast<eT*>(Mat<eT>::mem), aux_mem, fixed_n_elem );
}
else
{
- access::rw(Mat<eT>::n_rows) = 0;
- access::rw(Mat<eT>::n_cols) = 0;
- access::rw(Mat<eT>::n_elem) = 0;
- access::rw(Mat<eT>::vec_state) = 1;
- access::rw(Mat<eT>::mem_state) = 3;
- access::rw(Mat<eT>::mem) = 0;
+ access::rw(Mat<eT>::mem) = aux_mem;
}
}
@@ -622,6 +598,184 @@
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+subview_row<eT>
+Col<eT>::fixed<fixed_n_elem>::operator()(const u32 row_num, const span& col_span)
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_num, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+const subview_row<eT>
+Col<eT>::fixed<fixed_n_elem>::operator()(const u32 row_num, const span& col_span) const
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_num, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+subview_col<eT>
+Col<eT>::fixed<fixed_n_elem>::operator()(const span& row_span, const u32 col_num)
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_num);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+const subview_col<eT>
+Col<eT>::fixed<fixed_n_elem>::operator()(const span& row_span, const u32 col_num) const
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_num);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+subview<eT>
+Col<eT>::fixed<fixed_n_elem>::operator()(const span& row_span, const span& col_span)
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+const subview<eT>
+Col<eT>::fixed<fixed_n_elem>::operator()(const span& row_span, const span& col_span) const
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT&
+Col<eT>::fixed<fixed_n_elem>::at(const u32 i)
+ {
+ return access::rw(Mat<eT>::mem[i]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT
+Col<eT>::fixed<fixed_n_elem>::at(const u32 i) const
+ {
+ return Mat<eT>::mem[i];
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT&
+Col<eT>::fixed<fixed_n_elem>::operator() (const u32 i)
+ {
+ arma_debug_check( (i >= fixed_n_elem), "Col::fixed::operator(): out of bounds");
+ return access::rw(Mat<eT>::mem[i]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT
+Col<eT>::fixed<fixed_n_elem>::operator() (const u32 i) const
+ {
+ arma_debug_check( (i >= fixed_n_elem), "Col::fixed::operator(): out of bounds");
+ return Mat<eT>::mem[i];
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT&
+Col<eT>::fixed<fixed_n_elem>::at(const u32 in_row, const u32 in_col)
+ {
+ return access::rw(Mat<eT>::mem[in_row]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT
+Col<eT>::fixed<fixed_n_elem>::at(const u32 in_row, const u32 in_col) const
+ {
+ return Mat<eT>::mem[in_row];
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT&
+Col<eT>::fixed<fixed_n_elem>::operator() (const u32 in_row, const u32 in_col)
+ {
+ arma_debug_check( ((in_row >= fixed_n_elem) || (in_col >= 1)), "Col::fixed::operator(): out of bounds" );
+ return access::rw(Mat<eT>::mem[in_row]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT
+Col<eT>::fixed<fixed_n_elem>::operator() (const u32 in_row, const u32 in_col) const
+ {
+ arma_debug_check( ((in_row >= fixed_n_elem) || (in_col >= 1)), "Col::fixed::operator(): out of bounds" );
+ return Mat<eT>::mem[in_row];
+ }
+
+
+
#ifdef ARMA_EXTRA_COL_MEAT
#include ARMA_INCFILE_WRAP(ARMA_EXTRA_COL_MEAT)
#endif
Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/Mat_meat.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/Mat_meat.hpp 2011-05-17 01:14:47 UTC (rev 3027)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/Mat_meat.hpp 2011-05-17 01:15:31 UTC (rev 3028)
@@ -111,6 +111,18 @@
"Mat::init(): object is a row or column vector; requested size is not compatible"
);
+
+ // ensure that n_elem can hold the result of (n_rows * n_cols);
+ // on systems where sizeof(u32)*CHAR_BIT > 32,
+ // the code below in effect also checks for in_n_rows > 0xFFFFFFFF
+ arma_debug_check
+ (
+ // (double(in_n_rows) * double(in_n_cols)) > double(0xFFFFFFFF),
+ ( 0xFFFFFFFF / ((in_n_rows > 0) ? in_n_rows : 1) ) < in_n_cols,
+ "Mat::init(): requested size is too large"
+ );
+
+
const u32 old_n_elem = n_elem;
const u32 new_n_elem = in_n_rows * in_n_cols;
@@ -158,13 +170,6 @@
access::rw(n_cols) = in_n_cols;
access::rw(mem_state) = 0;
}
-
-
- if(new_n_elem == 0)
- {
- access::rw(n_rows) = 0;
- access::rw(n_cols) = 0;
- }
}
}
@@ -2090,15 +2095,22 @@
const u32 row_offset = (in_id < 0) ? u32(-in_id) : 0;
const u32 col_offset = (in_id > 0) ? u32( in_id) : 0;
- arma_debug_check
- (
- (row_offset >= n_rows) || (col_offset >= n_cols),
- "Mat::diag(): requested diagonal out of bounds"
- );
-
- const u32 len = (std::min)(n_rows - row_offset, n_cols - col_offset);
-
- return diagview<eT>(*this, row_offset, col_offset, len);
+ if(n_elem > 0)
+ {
+ arma_debug_check
+ (
+ (row_offset >= n_rows) || (col_offset >= n_cols),
+ "Mat::diag(): requested diagonal out of bounds"
+ );
+
+ const u32 len = (std::min)(n_rows - row_offset, n_cols - col_offset);
+
+ return diagview<eT>(*this, row_offset, col_offset, len);
+ }
+ else
+ {
+ return diagview<eT>(*this, 0, 0, 0);
+ }
}
@@ -3448,7 +3460,7 @@
bool
Mat<eT>::is_square() const
{
- return ( (n_rows == n_cols) && (n_elem > 0) );
+ return (n_rows == n_cols);
}
@@ -3691,7 +3703,7 @@
arma_extra_debug_sigprint();
Mat<eT> tmp;
- op_trans::apply_noalias(tmp, *this);
+ op_strans::apply_noalias(tmp, *this);
tmp.print(extra_text);
}
@@ -3710,7 +3722,7 @@
arma_extra_debug_sigprint();
Mat<eT> tmp;
- op_trans::apply_noalias(tmp, *this);
+ op_strans::apply_noalias(tmp, *this);
tmp.print(user_stream, extra_text);
}
@@ -3779,7 +3791,7 @@
arma_extra_debug_sigprint();
Mat<eT> tmp;
- op_trans::apply_noalias(tmp, *this);
+ op_strans::apply_noalias(tmp, *this);
tmp.raw_print(extra_text);
}
@@ -3798,7 +3810,7 @@
arma_extra_debug_sigprint();
Mat<eT> tmp;
- op_trans::apply_noalias(tmp, *this);
+ op_strans::apply_noalias(tmp, *this);
tmp.raw_print(user_stream, extra_text);
}
@@ -4899,24 +4911,12 @@
{
arma_extra_debug_sigprint_this(this);
- if(fixed_n_elem > 0)
- {
- access::rw(Mat<eT>::n_rows) = fixed_n_rows;
- access::rw(Mat<eT>::n_cols) = fixed_n_cols;
- access::rw(Mat<eT>::n_elem) = fixed_n_elem;
- access::rw(Mat<eT>::vec_state) = 0;
- access::rw(Mat<eT>::mem_state) = 3;
- access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : mem_local;
- }
- else
- {
- access::rw(Mat<eT>::n_rows) = 0;
- access::rw(Mat<eT>::n_cols) = 0;
- access::rw(Mat<eT>::n_elem) = 0;
- access::rw(Mat<eT>::vec_state) = 0;
- access::rw(Mat<eT>::mem_state) = 3;
- access::rw(Mat<eT>::mem) = 0;
- }
+ access::rw(Mat<eT>::n_rows) = fixed_n_rows;
+ access::rw(Mat<eT>::n_cols) = fixed_n_cols;
+ access::rw(Mat<eT>::n_elem) = fixed_n_elem;
+ access::rw(Mat<eT>::vec_state) = 0;
+ access::rw(Mat<eT>::mem_state) = 3;
+ access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : mem_local;
}
@@ -4928,33 +4928,21 @@
{
arma_extra_debug_sigprint_this(this);
- if(fixed_n_elem > 0)
+ access::rw(Mat<eT>::n_rows) = fixed_n_rows;
+ access::rw(Mat<eT>::n_cols) = fixed_n_cols;
+ access::rw(Mat<eT>::n_elem) = fixed_n_elem;
+ access::rw(Mat<eT>::vec_state) = 0;
+ access::rw(Mat<eT>::mem_state) = 3;
+
+ if(copy_aux_mem == true)
{
- access::rw(Mat<eT>::n_rows) = fixed_n_rows;
- access::rw(Mat<eT>::n_cols) = fixed_n_cols;
- access::rw(Mat<eT>::n_elem) = fixed_n_elem;
- access::rw(Mat<eT>::vec_state) = 0;
- access::rw(Mat<eT>::mem_state) = 3;
+ access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : mem_local;
- if(copy_aux_mem == true)
- {
- access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : mem_local;
-
- arrayops::copy( const_cast<eT*>(Mat<eT>::mem), aux_mem, fixed_n_elem );
- }
- else
- {
- access::rw(Mat<eT>::mem) = aux_mem;
- }
+ arrayops::copy( const_cast<eT*>(Mat<eT>::mem), aux_mem, fixed_n_elem );
}
else
{
- access::rw(Mat<eT>::n_rows) = 0;
- access::rw(Mat<eT>::n_cols) = 0;
- access::rw(Mat<eT>::n_elem) = 0;
- access::rw(Mat<eT>::vec_state) = 0;
- access::rw(Mat<eT>::mem_state) = 3;
- access::rw(Mat<eT>::mem) = 0;
+ access::rw(Mat<eT>::mem) = aux_mem;
}
}
@@ -4972,6 +4960,184 @@
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+inline
+subview_row<eT>
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::operator()(const u32 row_num, const span& col_span)
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_num, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+inline
+const subview_row<eT>
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::operator()(const u32 row_num, const span& col_span) const
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_num, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+inline
+subview_col<eT>
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::operator()(const span& row_span, const u32 col_num)
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_num);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+inline
+const subview_col<eT>
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::operator()(const span& row_span, const u32 col_num) const
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_num);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+inline
+subview<eT>
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::operator()(const span& row_span, const span& col_span)
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+inline
+const subview<eT>
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::operator()(const span& row_span, const span& col_span) const
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+arma_inline
+arma_warn_unused
+eT&
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::at(const u32 i)
+ {
+ return access::rw(Mat<eT>::mem[i]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+arma_inline
+arma_warn_unused
+eT
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::at(const u32 i) const
+ {
+ return Mat<eT>::mem[i];
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+arma_inline
+arma_warn_unused
+eT&
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::operator() (const u32 i)
+ {
+ arma_debug_check( (i >= fixed_n_elem), "Mat::fixed::operator(): out of bounds");
+ return access::rw(Mat<eT>::mem[i]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+arma_inline
+arma_warn_unused
+eT
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::operator() (const u32 i) const
+ {
+ arma_debug_check( (i >= fixed_n_elem), "Mat::fixed::operator(): out of bounds");
+ return Mat<eT>::mem[i];
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+arma_inline
+arma_warn_unused
+eT&
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::at(const u32 in_row, const u32 in_col)
+ {
+ return access::rw(Mat<eT>::mem[in_row + in_col*fixed_n_rows]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+arma_inline
+arma_warn_unused
+eT
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::at(const u32 in_row, const u32 in_col) const
+ {
+ return Mat<eT>::mem[in_row + in_col*fixed_n_rows];
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+arma_inline
+arma_warn_unused
+eT&
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::operator() (const u32 in_row, const u32 in_col)
+ {
+ arma_debug_check( ((in_row >= fixed_n_rows) || (in_col >= fixed_n_cols)), "Mat::fixed::operator(): out of bounds");
+ return access::rw(Mat<eT>::mem[in_row + in_col*fixed_n_rows]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_rows, u32 fixed_n_cols>
+arma_inline
+arma_warn_unused
+eT
+Mat<eT>::fixed<fixed_n_rows, fixed_n_cols>::operator() (const u32 in_row, const u32 in_col) const
+ {
+ arma_debug_check( ((in_row >= fixed_n_rows) || (in_col >= fixed_n_cols)), "Mat::fixed::operator(): out of bounds");
+ return Mat<eT>::mem[in_row + in_col*fixed_n_rows];
+ }
+
+
+
//! prefix ++
template<typename eT>
arma_inline
Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/Row_meat.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/Row_meat.hpp 2011-05-17 01:14:47 UTC (rev 3027)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/Row_meat.hpp 2011-05-17 01:15:31 UTC (rev 3028)
@@ -524,24 +524,12 @@
{
arma_extra_debug_sigprint_this(this);
- if(fixed_n_elem > 0)
- {
- access::rw(Mat<eT>::n_rows) = 1;
- access::rw(Mat<eT>::n_cols) = fixed_n_elem;
- access::rw(Mat<eT>::n_elem) = fixed_n_elem;
- access::rw(Mat<eT>::vec_state) = 2;
- access::rw(Mat<eT>::mem_state) = 3;
- access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : Mat<eT>::mem_local;
- }
- else
- {
- access::rw(Mat<eT>::n_rows) = 0;
- access::rw(Mat<eT>::n_cols) = 0;
- access::rw(Mat<eT>::n_elem) = 0;
- access::rw(Mat<eT>::vec_state) = 2;
- access::rw(Mat<eT>::mem_state) = 3;
- access::rw(Mat<eT>::mem) = 0;
- }
+ access::rw(Mat<eT>::n_rows) = 1;
+ access::rw(Mat<eT>::n_cols) = fixed_n_elem;
+ access::rw(Mat<eT>::n_elem) = fixed_n_elem;
+ access::rw(Mat<eT>::vec_state) = 2;
+ access::rw(Mat<eT>::mem_state) = 3;
+ access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : Mat<eT>::mem_local;
}
@@ -553,33 +541,21 @@
{
arma_extra_debug_sigprint_this(this);
- if(fixed_n_elem > 0)
+ access::rw(Mat<eT>::n_rows) = 1;
+ access::rw(Mat<eT>::n_cols) = fixed_n_elem;
+ access::rw(Mat<eT>::n_elem) = fixed_n_elem;
+ access::rw(Mat<eT>::vec_state) = 2;
+ access::rw(Mat<eT>::mem_state) = 3;
+
+ if(copy_aux_mem == true)
{
- access::rw(Mat<eT>::n_rows) = 1;
- access::rw(Mat<eT>::n_cols) = fixed_n_elem;
- access::rw(Mat<eT>::n_elem) = fixed_n_elem;
- access::rw(Mat<eT>::vec_state) = 2;
- access::rw(Mat<eT>::mem_state) = 3;
+ access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : Mat<eT>::mem_local;
- if(copy_aux_mem == true)
- {
- access::rw(Mat<eT>::mem) = (fixed_n_elem > arma_config::mat_prealloc) ? mem_local_extra : Mat<eT>::mem_local;
-
- arrayops::copy( const_cast<eT*>(Mat<eT>::mem), aux_mem, fixed_n_elem );
- }
- else
- {
- access::rw(Mat<eT>::mem) = aux_mem;
- }
+ arrayops::copy( const_cast<eT*>(Mat<eT>::mem), aux_mem, fixed_n_elem );
}
else
{
- access::rw(Mat<eT>::n_rows) = 0;
- access::rw(Mat<eT>::n_cols) = 0;
- access::rw(Mat<eT>::n_elem) = 0;
- access::rw(Mat<eT>::vec_state) = 2;
- access::rw(Mat<eT>::mem_state) = 3;
- access::rw(Mat<eT>::mem) = 0;
+ access::rw(Mat<eT>::mem) = aux_mem;
}
}
@@ -597,6 +573,184 @@
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+subview_row<eT>
+Row<eT>::fixed<fixed_n_elem>::operator()(const u32 row_num, const span& col_span)
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_num, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+const subview_row<eT>
+Row<eT>::fixed<fixed_n_elem>::operator()(const u32 row_num, const span& col_span) const
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_num, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+subview_col<eT>
+Row<eT>::fixed<fixed_n_elem>::operator()(const span& row_span, const u32 col_num)
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_num);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+const subview_col<eT>
+Row<eT>::fixed<fixed_n_elem>::operator()(const span& row_span, const u32 col_num) const
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_num);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+subview<eT>
+Row<eT>::fixed<fixed_n_elem>::operator()(const span& row_span, const span& col_span)
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+inline
+const subview<eT>
+Row<eT>::fixed<fixed_n_elem>::operator()(const span& row_span, const span& col_span) const
+ {
+ arma_extra_debug_sigprint();
+
+ return Mat<eT>::operator()(row_span, col_span);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT&
+Row<eT>::fixed<fixed_n_elem>::at(const u32 i)
+ {
+ return access::rw(Mat<eT>::mem[i]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT
+Row<eT>::fixed<fixed_n_elem>::at(const u32 i) const
+ {
+ return Mat<eT>::mem[i];
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT&
+Row<eT>::fixed<fixed_n_elem>::operator() (const u32 i)
+ {
+ arma_debug_check( (i >= fixed_n_elem), "Mat::fixed::operator(): out of bounds");
+ return access::rw(Mat<eT>::mem[i]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT
+Row<eT>::fixed<fixed_n_elem>::operator() (const u32 i) const
+ {
+ arma_debug_check( (i >= fixed_n_elem), "Mat::fixed::operator(): out of bounds");
+ return Mat<eT>::mem[i];
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT&
+Row<eT>::fixed<fixed_n_elem>::at(const u32 in_row, const u32 in_col)
+ {
+ return access::rw(Mat<eT>::mem[in_col]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT
+Row<eT>::fixed<fixed_n_elem>::at(const u32 in_row, const u32 in_col) const
+ {
+ return Mat<eT>::mem[in_col];
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT&
+Row<eT>::fixed<fixed_n_elem>::operator() (const u32 in_row, const u32 in_col)
+ {
+ arma_debug_check( ((in_row >= 1) || (in_col >= fixed_n_elem)), "Row::fixed::operator(): out of bounds" );
+ return access::rw(Mat<eT>::mem[in_col]);
+ }
+
+
+
+template<typename eT>
+template<u32 fixed_n_elem>
+arma_inline
+arma_warn_unused
+eT
+Row<eT>::fixed<fixed_n_elem>::operator() (const u32 in_row, const u32 in_col) const
+ {
+ arma_debug_check( ((in_row >= 1) || (in_col >= fixed_n_elem)), "Row::fixed::operator(): out of bounds" );
+ return Mat<eT>::mem[in_col];
+ }
+
+
+
#ifdef ARMA_EXTRA_ROW_MEAT
#include ARMA_INCFILE_WRAP(ARMA_EXTRA_ROW_MEAT)
#endif
Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/arma_ostream_meat.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/arma_ostream_meat.hpp 2011-05-17 01:14:47 UTC (rev 3027)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/arma_ostream_meat.hpp 2011-05-17 01:15:31 UTC (rev 3028)
@@ -215,38 +215,45 @@
const u32 m_n_rows = m.n_rows;
const u32 m_n_cols = m.n_cols;
- if(m_n_cols > 0)
[TRUNCATED]
To get the complete diff run:
svnlook diff /svnroot/rcpp -r 3028
More information about the Rcpp-commits
mailing list