[mlpack-svn] r10737 - mlpack/trunk/src/mlpack/core/arma_extend/sparse

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Tue Dec 13 02:23:09 EST 2011


Author: rcurtin
Date: 2011-12-13 02:23:09 -0500 (Tue, 13 Dec 2011)
New Revision: 10737

Modified:
   mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpMat_meat.hpp
   mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpValProxy_bones.hpp
   mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpValProxy_meat.hpp
Log:
Simpler swap_cols() and SpValProxy::operator=(SpValProxy&) to make it work.


Modified: mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpMat_meat.hpp
===================================================================
--- mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpMat_meat.hpp	2011-12-12 23:06:18 UTC (rev 10736)
+++ mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpMat_meat.hpp	2011-12-13 07:23:09 UTC (rev 10737)
@@ -4463,6 +4463,8 @@
     col_ptrs[col] += col_ptrs[col - 1];
     }
 
+  access::rw(n_nonzero) = col_ptrs[n_cols];
+
   return *this;
   }
 
@@ -4522,6 +4524,8 @@
     col_ptrs[col] += col_ptrs[col - 1];
     }
 
+  access::rw(n_nonzero) = col_ptrs[n_cols];
+
   return *this;
   }
 
@@ -4935,6 +4939,14 @@
   {
   arma_extra_debug_sigprint();
 
+  // slow but works
+  for(uword row = 0; row < n_rows; ++row)
+    {
+    eT tmp = at(row, in_col1);
+    at(row, in_col1) = at(row, in_col2);
+    at(row, in_col2) = tmp;
+    }
+/*
   arma_debug_check
     (
     (in_col1 > in_col2) || (in_col2 >= n_cols),
@@ -5040,7 +5052,7 @@
       }
 
     }
-
+*/
   }
 
 /**

Modified: mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpValProxy_bones.hpp
===================================================================
--- mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpValProxy_bones.hpp	2011-12-12 23:06:18 UTC (rev 10736)
+++ mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpValProxy_bones.hpp	2011-12-13 07:23:09 UTC (rev 10737)
@@ -29,6 +29,9 @@
    */
   SpValProxy(uword row, uword col, SpMat<eT>& in_parent, eT* in_val_ptr = NULL);
 
+  //! For swapping operations.
+  arma_inline SpValProxy& operator=(const SpValProxy& rhs);
+
   //! Overload all of the potential operators.
 
   //! First, the ones that could modify a value.

Modified: mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpValProxy_meat.hpp
===================================================================
--- mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpValProxy_meat.hpp	2011-12-12 23:06:18 UTC (rev 10736)
+++ mlpack/trunk/src/mlpack/core/arma_extend/sparse/SpValProxy_meat.hpp	2011-12-13 07:23:09 UTC (rev 10737)
@@ -26,6 +26,14 @@
 template<typename eT>
 arma_inline
 SpValProxy<eT>&
+SpValProxy<eT>::operator=(const SpValProxy<eT>& rhs)
+  {
+  return (*this).operator=(eT(rhs));
+  }
+
+template<typename eT>
+arma_inline
+SpValProxy<eT>&
 SpValProxy<eT>::operator=(const eT rhs)
   {
   if (rhs != 0) // A nonzero element is being assigned.




More information about the mlpack-svn mailing list