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

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Mon Apr 2 21:58:30 CEST 2012


Author: edd
Date: 2012-04-02 21:58:30 +0200 (Mon, 02 Apr 2012)
New Revision: 3563

Modified:
   pkg/RcppArmadillo/ChangeLog
   pkg/RcppArmadillo/DESCRIPTION
   pkg/RcppArmadillo/inst/NEWS
   pkg/RcppArmadillo/inst/include/armadillo_bits/arma_version.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_times_bones.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/glue_times_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_dot_bones.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_dot_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/op_repmat_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/strip.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/subview_bones.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/subview_meat.hpp
   pkg/RcppArmadillo/inst/include/armadillo_bits/unwrap.hpp
Log:
RcppArmadillo 0.2.39 with Armadillo 2.99.3


Modified: pkg/RcppArmadillo/ChangeLog
===================================================================
--- pkg/RcppArmadillo/ChangeLog	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/ChangeLog	2012-04-02 19:58:30 UTC (rev 3563)
@@ -1,3 +1,9 @@
+2012-04-02  Dirk Eddelbuettel  <edd at debian.org>
+
+	* DESCRIPTION: Release 0.2.39
+
+	* inst/include/*: Upgraded to new test release 2.99.3 of Armadillo
+
 2012-03-28  Dirk Eddelbuettel  <edd at debian.org>
 
 	* DESCRIPTION: Release 0.2.38

Modified: pkg/RcppArmadillo/DESCRIPTION
===================================================================
--- pkg/RcppArmadillo/DESCRIPTION	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/DESCRIPTION	2012-04-02 19:58:30 UTC (rev 3563)
@@ -1,7 +1,7 @@
 Package: RcppArmadillo
 Type: Package
 Title: Rcpp integration for Armadillo templated linear algebra library
-Version: 0.2.38
+Version: 0.2.39
 Date: $Date$
 Author: Romain Francois, Dirk Eddelbuettel and Doug Bates
 Maintainer: Romain Francois, Dirk Eddelbuettel and Doug Bates <RcppArmadillo-authors at r-enthusiasts.com>
@@ -21,7 +21,7 @@
  (due to speed and/or integration capabilities), rather than another language.
  .
  The RcppArmadillo package includes the header files from the templated
- Armadillo library (currently version 2.99.2). Thus users do not need to
+ Armadillo library (currently version 2.99.3). Thus users do not need to
  install Armadillo itself in order to use RcppArmadillo.
  .
  This Armadillo integration provides a nice illustration of the 

Modified: pkg/RcppArmadillo/inst/NEWS
===================================================================
--- pkg/RcppArmadillo/inst/NEWS	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/inst/NEWS	2012-04-02 19:58:30 UTC (rev 3563)
@@ -1,3 +1,10 @@
+0.2.39  2012-04-02
+
+    o   Upgraded to Armadillo release 2.99.3 "Antarctic Chilli Ranch (Beta 3)"
+
+    	  * faster repmat()
+	  * workarounds for braindead compilers (eg. Visual Studio)
+
 0.2.38  2012-03-28
 
     o   Upgraded to Armadillo release 2.99.2 "Antarctic Chilli Ranch (Beta 2)"

Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/arma_version.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/arma_version.hpp	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/arma_version.hpp	2012-04-02 19:58:30 UTC (rev 3563)
@@ -18,8 +18,8 @@
 
 #define ARMA_VERSION_MAJOR 2
 #define ARMA_VERSION_MINOR 99
-#define ARMA_VERSION_PATCH 2
-#define ARMA_VERSION_NAME  "Antarctic Chilli Ranch (Beta 2)"
+#define ARMA_VERSION_PATCH 3
+#define ARMA_VERSION_NAME  "Antarctic Chilli Ranch (Beta 3)"
 
 
 

Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/glue_times_bones.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/glue_times_bones.hpp	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/glue_times_bones.hpp	2012-04-02 19:58:30 UTC (rev 3563)
@@ -35,6 +35,23 @@
 
 
 
+template<bool is_eT_blas_type>
+struct glue_times_redirect2_helper
+  {
+  template<typename T1, typename T2>
+  arma_hot inline static void apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X);
+  };
+
+
+template<>
+struct glue_times_redirect2_helper<true>
+  {
+  template<typename T1, typename T2>
+  arma_hot inline static void apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X);
+  };
+
+
+
 template<uword N>
 struct glue_times_redirect
   {
@@ -47,10 +64,7 @@
 struct glue_times_redirect<2>
   {
   template<typename T1, typename T2>
-  arma_hot inline static void apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X, const typename arma_blas_type_only<typename T1::elem_type>::result* junk = 0);
-  
-  template<typename T1, typename T2>
-  arma_hot inline static void apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X, const typename arma_not_blas_type<typename T1::elem_type>::result* junk = 0);
+  arma_hot inline static void apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X);
   };
 
 

Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/glue_times_meat.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/glue_times_meat.hpp	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/glue_times_meat.hpp	2012-04-02 19:58:30 UTC (rev 3563)
@@ -16,12 +16,12 @@
 
 
 
-template<uword N>
+template<bool is_eT_blas_type>
 template<typename T1, typename T2>
 arma_hot
 inline
 void
-glue_times_redirect<N>::apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X)
+glue_times_redirect2_helper<is_eT_blas_type>::apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X)
   {
   arma_extra_debug_sigprint();
   
@@ -52,10 +52,9 @@
 arma_hot
 inline
 void
-glue_times_redirect<2>::apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X, const typename arma_blas_type_only<typename T1::elem_type>::result* junk)
+glue_times_redirect2_helper<true>::apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X)
   {
   arma_extra_debug_sigprint();
-  arma_ignore(junk);
   
   typedef typename T1::elem_type eT;
   
@@ -100,14 +99,14 @@
 
 
 
+template<uword N>
 template<typename T1, typename T2>
 arma_hot
 inline
 void
-glue_times_redirect<2>::apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X, const typename arma_not_blas_type<typename T1::elem_type>::result* junk)
+glue_times_redirect<N>::apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X)
   {
   arma_extra_debug_sigprint();
-  arma_ignore(junk);
   
   typedef typename T1::elem_type eT;
   
@@ -132,6 +131,21 @@
 
 
 
+template<typename T1, typename T2>
+arma_hot
+inline
+void
+glue_times_redirect<2>::apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_times>& X)
+  {
+  arma_extra_debug_sigprint();
+  
+  typedef typename T1::elem_type eT;
+  
+  glue_times_redirect2_helper< is_supported_blas_type<eT>::value >::apply(out, X);
+  }
+
+
+
 template<typename T1, typename T2, typename T3>
 arma_hot
 inline

Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/op_dot_bones.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/op_dot_bones.hpp	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/op_dot_bones.hpp	2012-04-02 19:58:30 UTC (rev 3563)
@@ -1,5 +1,5 @@
-// Copyright (C) 2008-2011 NICTA (www.nicta.com.au)
-// Copyright (C) 2008-2011 Conrad Sanderson
+// Copyright (C) 2008-2012 NICTA (www.nicta.com.au)
+// Copyright (C) 2008-2012 Conrad Sanderson
 // 
 // This file is part of the Armadillo C++ library.
 // It is provided without any warranty of fitness
@@ -22,7 +22,7 @@
   public:
   
   template<typename eT>
-  arma_hot arma_pure inline static eT direct_dot_arma(const uword n_elem, const eT* const A, const eT* const B);
+  arma_hot arma_pure arma_inline static eT direct_dot_arma(const uword n_elem, const eT* const A, const eT* const B);
   
   template<typename eT>
   arma_hot arma_pure inline static typename arma_float_only<eT>::result

Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/op_dot_meat.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/op_dot_meat.hpp	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/op_dot_meat.hpp	2012-04-02 19:58:30 UTC (rev 3563)
@@ -1,5 +1,5 @@
-// Copyright (C) 2008-2011 NICTA (www.nicta.com.au)
-// Copyright (C) 2008-2011 Conrad Sanderson
+// Copyright (C) 2008-2012 NICTA (www.nicta.com.au)
+// Copyright (C) 2008-2012 Conrad Sanderson
 // 
 // This file is part of the Armadillo C++ library.
 // It is provided without any warranty of fitness
@@ -21,7 +21,7 @@
 template<typename eT>
 arma_hot
 arma_pure
-inline
+arma_inline
 eT
 op_dot::direct_dot_arma(const uword n_elem, const eT* const A, const eT* const B)
   {

Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/op_repmat_meat.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/op_repmat_meat.hpp	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/op_repmat_meat.hpp	2012-04-02 19:58:30 UTC (rev 3563)
@@ -1,5 +1,5 @@
-// Copyright (C) 2009-2011 NICTA (www.nicta.com.au)
-// Copyright (C) 2009-2011 Conrad Sanderson
+// Copyright (C) 2009-2012 NICTA (www.nicta.com.au)
+// Copyright (C) 2009-2012 Conrad Sanderson
 // Copyright (C) 2009-2010 Dimitrios Bouzas
 // 
 // This file is part of the Armadillo C++ library.
@@ -35,24 +35,62 @@
   const uword copies_per_row = in.aux_uword_a;
   const uword copies_per_col = in.aux_uword_b;
   
-  const uword X_n_rows = X.n_rows;
-  const uword X_n_cols = X.n_cols;
-  
+  const uword X_n_rows = X.n_rows;
+  const uword X_n_cols = X.n_cols;
+  
   out.set_size(X_n_rows * copies_per_row, X_n_cols * copies_per_col);
-  
-  const uword out_n_rows = out.n_rows;
-  const uword out_n_cols = out.n_cols;
   
-  if( (out_n_rows > 0) && (out_n_cols > 0) )
-    {
-    for(uword col = 0; col < out_n_cols; col += X_n_cols)
-      {
-      for(uword row = 0; row < out_n_rows; row += X_n_rows)
+  const uword out_n_rows = out.n_rows;
+  const uword out_n_cols = out.n_cols;
+  
+  // if( (out_n_rows > 0) && (out_n_cols > 0) )
+  //   {
+  //   for(uword col = 0; col < out_n_cols; col += X_n_cols)
+  //   for(uword row = 0; row < out_n_rows; row += X_n_rows)
+  //     {
+  //     out.submat(row, col, row+X_n_rows-1, col+X_n_cols-1) = X;
+  //     }
+  //   }
+  
+  if( (out_n_rows > 0) && (out_n_cols > 0) )
+    {
+    if(copies_per_row != 1)
+      {
+      for(uword col_copy=0; col_copy < copies_per_col; ++col_copy)
         {
-        out.submat(row, col, row+X_n_rows-1, col+X_n_cols-1) = X;
+        const uword out_col_offset = X_n_cols * col_copy;
+        
+        for(uword col=0; col < X_n_cols; ++col)
+          {
+                eT* out_colptr = out.colptr(col + out_col_offset);
+          const eT* X_colptr   = X.colptr(col);
+          
+          for(uword row_copy=0; row_copy < copies_per_row; ++row_copy)
+            {
+            const uword out_row_offset = X_n_rows * row_copy;
+            
+            arrayops::copy( &out_colptr[out_row_offset], X_colptr, X_n_rows );
+            }
+          }
         }
-      }
+      }
+    else
+      {
+      for(uword col_copy=0; col_copy < copies_per_col; ++col_copy)
+        {
+        const uword out_col_offset = X_n_cols * col_copy;
+        
+        for(uword col=0; col < X_n_cols; ++col)
+          {
+                eT* out_colptr = out.colptr(col + out_col_offset);
+          const eT* X_colptr   = X.colptr(col);
+          
+          arrayops::copy( out_colptr, X_colptr, X_n_rows );
+          }
+        }
+      }
     }
+  
   }
 
 

Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/strip.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/strip.hpp	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/strip.hpp	2012-04-02 19:58:30 UTC (rev 3563)
@@ -21,7 +21,8 @@
   {
   typedef T1 stored_type;
   
-  inline strip_diagmat(const T1& X)
+  arma_hot inline
+  strip_diagmat(const T1& X)
     : M(X)
     {
     arma_extra_debug_sigprint();
@@ -39,7 +40,8 @@
   {
   typedef T1 stored_type;
   
-  inline strip_diagmat(const Op<T1, op_diagmat>& X)
+  arma_hot inline
+  strip_diagmat(const Op<T1, op_diagmat>& X)
     : M(X.m)
     {
     arma_extra_debug_sigprint();
@@ -57,7 +59,8 @@
   {
   typedef T1 stored_type;
   
-  inline strip_inv(const T1& X)
+  arma_hot inline
+  strip_inv(const T1& X)
     : M(X)
     {
     arma_extra_debug_sigprint();
@@ -76,7 +79,8 @@
   {
   typedef T1 stored_type;
   
-  inline strip_inv(const Op<T1, op_inv>& X)
+  arma_hot inline
+  strip_inv(const Op<T1, op_inv>& X)
     : M(X.m)
     , slow(X.aux_uword_a == 1)
     {

Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/subview_bones.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/subview_bones.hpp	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/subview_bones.hpp	2012-04-02 19:58:30 UTC (rev 3563)
@@ -89,9 +89,6 @@
   inline eT&         at(const uword in_row, const uword in_col);
   inline eT          at(const uword in_row, const uword in_col) const;
   
-  inline eT&    at_slow(const uword in_row, const uword in_col);
-  inline eT     at_slow(const uword in_row, const uword in_col) const;
-  
   arma_inline       eT* colptr(const uword in_col);
   arma_inline const eT* colptr(const uword in_col) const;
   

Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/subview_meat.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/subview_meat.hpp	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/subview_meat.hpp	2012-04-02 19:58:30 UTC (rev 3563)
@@ -1271,30 +1271,6 @@
 
 
 template<typename eT>
-inline
-eT&
-subview<eT>::at_slow(const uword in_row, const uword in_col)
-  {
-  const uword index = (in_col + aux_col1)*m.n_rows + aux_row1 + in_row;
-  
-  return access::rw( (const_cast< Mat<eT>& >(m)).mem[index] );
-  }
-
-
-
-template<typename eT>
-inline
-eT
-subview<eT>::at_slow(const uword in_row, const uword in_col) const
-  {
-  const uword index = (in_col + aux_col1)*m.n_rows + aux_row1 + in_row;
-  
-  return m.mem[index];
-  }
-
-
-
-template<typename eT>
 arma_inline
 eT*
 subview<eT>::colptr(const uword in_col)

Modified: pkg/RcppArmadillo/inst/include/armadillo_bits/unwrap.hpp
===================================================================
--- pkg/RcppArmadillo/inst/include/armadillo_bits/unwrap.hpp	2012-03-30 17:53:26 UTC (rev 3562)
+++ pkg/RcppArmadillo/inst/include/armadillo_bits/unwrap.hpp	2012-04-02 19:58:30 UTC (rev 3563)
@@ -126,11 +126,10 @@
   typedef typename T1::elem_type eT;
   
   inline
-  unwrap_check(const T1& A, const Mat<eT>& B)
+  unwrap_check(const T1& A, const Mat<eT>&)
     : M(A)
     {
     arma_extra_debug_sigprint();
-    arma_ignore(B);
     }
   
   inline
@@ -259,11 +258,10 @@
   
   template<typename eT2>
   inline
-  unwrap_check_mixed(const T1& A, const Mat<eT2>& B)
+  unwrap_check_mixed(const T1& A, const Mat<eT2>&)
     : M(A)
     {
     arma_extra_debug_sigprint();
-    arma_ignore(B);
     }
   
   inline
@@ -902,11 +900,11 @@
   
   typedef typename T1::elem_type eT;
   
-  inline partial_unwrap_check(const T1& A, const Mat<eT>& B)
+  arma_hot inline
+  partial_unwrap_check(const T1& A, const Mat<eT>&)
     : M(A)
     {
     arma_extra_debug_sigprint();
-    arma_ignore(B);
     }
   
   
@@ -917,7 +915,7 @@
     }
   
   
-  inline eT get_val() const { return eT(1); }
+  arma_hot arma_inline eT get_val() const { return eT(1); }
   
   
   static const bool do_trans = false;
@@ -933,7 +931,7 @@
   {
   public:
   
-  inline
+  arma_hot inline
   partial_unwrap_check(const Mat<eT>& A, const Mat<eT>& B)
     : M_local ( (&A == &B) ? new Mat<eT>(A) : 0 )
     , M       ( (&A == &B) ? (*M_local)     : A )
@@ -954,7 +952,7 @@
     }
   
   
-  inline eT get_val() const { return eT(1); }
+  arma_hot arma_inline eT get_val() const { return eT(1); }
   
   
   static const bool do_trans = false;
@@ -972,7 +970,7 @@
   {
   public:
   
-  inline
+  arma_hot inline
   partial_unwrap_check(const Row<eT>& A, const Mat<eT>& B)
     : M_local ( (&A == &B) ? new Mat<eT>(A) : 0 )
     , M       ( (&A == &B) ? (*M_local)     : A )
@@ -992,10 +990,9 @@
       }
     }
   
+  arma_hot arma_inline eT get_val() const { return eT(1); }
   
-  inline eT get_val() const { return eT(1); }
   
-  
   static const bool do_trans = false;
   static const bool do_times = false;
   
@@ -1011,7 +1008,7 @@
   {
   public:
   
-  inline
+  arma_hot inline
   partial_unwrap_check(const Col<eT>& A, const Mat<eT>& B)
     : M_local ( (&A == &B) ? new Mat<eT>(A) : 0 )
     , M       ( (&A == &B) ? (*M_local)     : A )
@@ -1032,7 +1029,7 @@
     }
   
   
-  inline eT get_val() const { return eT(1); }
+  arma_hot arma_inline eT get_val() const { return eT(1); }
   
   
   static const bool do_trans = false;
@@ -1052,12 +1049,11 @@
   
   typedef typename T1::elem_type eT;
   
-  inline
-  partial_unwrap_check(const Op<T1,op_htrans>& A, const Mat<eT>& B)
+  arma_hot inline
+  partial_unwrap_check(const Op<T1,op_htrans>& A, const Mat<eT>&)
     : M(A.m)
     {
     arma_extra_debug_sigprint();
-    arma_ignore(B);
     }
   
   inline
@@ -1067,7 +1063,7 @@
     }
   
   
-  inline eT get_val() const { return eT(1); }
+  arma_hot arma_inline eT get_val() const { return eT(1); }
   
   
   static const bool do_trans = true;
@@ -1083,7 +1079,7 @@
   {
   public:
   
-  inline
+  arma_hot inline
   partial_unwrap_check(const Op< Mat<eT>, op_htrans>& A, const Mat<eT>& B)
     : M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0   )
     , M       ( (&A.m == &B) ? (*M_local)       : A.m )
@@ -1103,7 +1099,7 @@
     }
   
   
-  inline eT get_val() const { return eT(1); }
+  arma_hot arma_inline eT get_val() const { return eT(1); }
   
   
   static const bool do_trans = true;
@@ -1121,7 +1117,7 @@
   {
   public:
   
-  inline
+  arma_hot inline
   partial_unwrap_check(const Op< Row<eT>, op_htrans>& A, const Mat<eT>& B)
     : M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0   )
     , M       ( (&A.m == &B) ? (*M_local)       : A.m )
@@ -1141,7 +1137,7 @@
     }
   
   
-  inline eT get_val() const { return eT(1); }
+  arma_hot arma_inline eT get_val() const { return eT(1); }
   
   
   static const bool do_trans = true;
@@ -1159,7 +1155,7 @@
   {
   public:
   
-  inline
+  arma_hot inline
   partial_unwrap_check(const Op< Col<eT>, op_htrans>& A, const Mat<eT>& B)
     : M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0   )
     , M       ( (&A.m == &B) ? (*M_local)       : A.m )
@@ -1179,7 +1175,7 @@
     }
   
   
-  inline eT get_val() const { return eT(1); }
+  arma_hot arma_inline eT get_val() const { return eT(1); }
   
   
   static const bool do_trans = true;
@@ -1199,7 +1195,7 @@
   
   typedef typename T1::elem_type eT;
   
-  inline
+  arma_hot inline
   partial_unwrap_check(const Op<T1,op_htrans2>& A, const Mat<eT>&)
     : val(A.aux)
     , M  (A.m)
@@ -1214,7 +1210,7 @@
     }
   
   
-  inline eT get_val() const { return val; }
+  arma_hot arma_inline eT get_val() const { return val; }
   
   
   static const bool do_trans = true;
@@ -1231,7 +1227,7 @@
   {
   public:
   
-  inline
+  arma_hot inline
   partial_unwrap_check(const Op< Mat<eT>, op_htrans2>& A, const Mat<eT>& B)
     : val     (A.aux)
     , M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0   )
@@ -1252,7 +1248,7 @@
     }
   
   
-  inline eT get_val() const { return val; }
+  arma_hot arma_inline eT get_val() const { return val; }
   
   
   static const bool do_trans = true;
@@ -1271,7 +1267,7 @@
   {
   public:
   
-  inline
+  arma_hot inline
   partial_unwrap_check(const Op< Row<eT>, op_htrans2>& A, const Mat<eT>& B)
     : val     (A.aux)
     , M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0   )
@@ -1292,7 +1288,7 @@
     }
   
   
-  inline eT get_val() const { return val; }
+  arma_hot arma_inline eT get_val() const { return val; }
   
   
   static const bool do_trans = true;
@@ -1311,7 +1307,7 @@
   {
   public:
   
-  inline
+  arma_hot inline
   partial_unwrap_check(const Op< Mat<eT>, op_htrans2>& A, const Mat<eT>& B)
     : val     (A.aux)
     , M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0   )
@@ -1332,7 +1328,7 @@
     }
   
   
-  inline eT get_val() const { return val; }
+  arma_hot arma_inline eT get_val() const { return val; }
   
   
   static const bool do_trans = true;
@@ -1353,13 +1349,12 @@
   
   typedef typename T1::elem_type eT;
   
-  inline
-  partial_unwrap_check(const eOp<T1,eop_scalar_times>& A, const Mat<eT>& B)
+  arma_hot inline
+  partial_unwrap_check(const eOp<T1,eop_scalar_times>& A, const Mat<eT>&)
     : val(A.aux)
     , M  (A.P.Q)
     {
     arma_extra_debug_sigprint();
-    arma_ignore(B);
     }
   
   inline
@@ -1369,7 +1364,7 @@
     }
   
   
-  inline eT get_val() const { return val; }
+  arma_hot arma_inline eT get_val() const { return val; }
   
   
   static const bool do_trans = false;
@@ -1386,13 +1381,12 @@
   {
   public:
   
-  inline
-  partial_unwrap_check(const eOp<Mat<eT>,eop_scalar_times>& A, const Mat<eT>& B)
+  arma_hot inline
+  partial_unwrap_check(const eOp<Mat<eT>,eop_scalar_times>& A, const Mat<eT>&)
     : val(A.aux)
     , M  (A.P.Q)
     {
     arma_extra_debug_sigprint();
-    arma_ignore(B);
     }
   
   inline
@@ -1402,7 +1396,7 @@
     }
   
   
-  inline eT get_val() const { return val; }
+  arma_hot arma_inline eT get_val() const { return val; }
   
   
   static const bool do_trans = false;
@@ -1419,13 +1413,12 @@
   {
   public:
   
-  inline
-  partial_unwrap_check(const eOp<Row<eT>,eop_scalar_times>& A, const Mat<eT>& B)
+  arma_hot inline
+  partial_unwrap_check(const eOp<Row<eT>,eop_scalar_times>& A, const Mat<eT>&)
     : val(A.aux)
     , M  (A.P.Q)
     {
     arma_extra_debug_sigprint();
-    arma_ignore(B);
     }
   
   inline
@@ -1435,7 +1428,7 @@
     }
   
   
-  inline eT get_val() const { return val; }
+  arma_hot arma_inline eT get_val() const { return val; }
   
   
   static const bool do_trans = false;
@@ -1452,13 +1445,12 @@
   {
   public:
   
-  inline
-  partial_unwrap_check(const eOp<Col<eT>,eop_scalar_times>& A, const Mat<eT>& B)
+  arma_hot inline
+  partial_unwrap_check(const eOp<Col<eT>,eop_scalar_times>& A, const Mat<eT>&)
     : val(A.aux)
     , M  (A.P.Q)
     {
     arma_extra_debug_sigprint();
-    arma_ignore(B);
     }
   
   inline
@@ -1468,7 +1460,7 @@
     }
   
   
-  inline eT get_val() const { return val; }
+  arma_hot arma_inline eT get_val() const { return val; }
   
   
   static const bool do_trans = false;



More information about the Rcpp-commits mailing list