diff liboctave/dSparse.cc @ 8303:b11c31849b44

improve norm computation capabilities
author Jaroslav Hajek <highegg@gmail.com>
date Fri, 31 Oct 2008 08:05:32 +0100
parents 935be827eaf8
children 64cf956a109c
line wrap: on
line diff
--- a/liboctave/dSparse.cc
+++ b/liboctave/dSparse.cc
@@ -515,6 +515,37 @@
   return result;
 }
 
+RowVector 
+SparseMatrix::row (octave_idx_type i) const
+{
+  octave_idx_type nc = columns ();
+  RowVector retval (nc, 0);
+
+  for (octave_idx_type j = 0; j < nc; j++)
+    for (octave_idx_type k = cidx (j); k < cidx (j+1); k++)
+      {
+        if (ridx (k) == i)
+          {
+            retval(j) = data (k);
+            break;
+          }
+      }
+
+  return retval;
+}
+
+ColumnVector 
+SparseMatrix::column (octave_idx_type i) const
+{
+  octave_idx_type nr = rows ();
+  ColumnVector retval (nr);
+
+  for (octave_idx_type k = cidx (i); k < cidx (i+1); k++)
+    retval(ridx (k)) = data (k);
+
+  return retval;
+}
+
 SparseMatrix
 SparseMatrix::concat (const SparseMatrix& rb, const Array<octave_idx_type>& ra_idx)
 {