diff liboctave/MDiagArray2.cc @ 8367:445d27d79f4e

support permutation matrix objects
author Jaroslav Hajek <highegg@gmail.com>
date Thu, 04 Dec 2008 08:31:56 +0100
parents a1dbe9d80eee
children eb63fbe60fab
line wrap: on
line diff
--- a/liboctave/MDiagArray2.cc
+++ b/liboctave/MDiagArray2.cc
@@ -31,6 +31,22 @@
 
 #include "MArray-defs.h"
 
+template <class T>
+bool 
+MDiagArray2<T>::is_multiple_of_identity (T val) const
+{
+  bool retval = this->rows () == this->cols ();
+  if (retval)
+    {
+      octave_idx_type len = this->length (), i = 0;
+      for (;i < len; i++) 
+        if (DiagArray2<T>::elem (i, i) != val) break;
+      retval = i == len;
+    }
+
+  return retval;
+}
+
 // Some functions return a reference to this object after a failure.
 template <class T> MDiagArray2<T> MDiagArray2<T>::nil_array;