diff liboctave/base-lu.h @ 9694:50db3c5175b5

allow unpacked form of LU
author Jaroslav Hajek <highegg@gmail.com>
date Mon, 05 Oct 2009 15:39:44 +0200
parents eb63fbe60fab
children 9f27172fbd1e
line wrap: on
line diff
--- a/liboctave/base-lu.h	Mon Oct 05 11:53:41 2009 +0200
+++ b/liboctave/base-lu.h	Mon Oct 05 15:39:44 2009 +0200
@@ -37,13 +37,18 @@
 
   base_lu (void) { }
 
-  base_lu (const base_lu& a) : a_fact (a.a_fact), ipvt (a.ipvt) { }
+  base_lu (const base_lu& a) : 
+    a_fact (a.a_fact), l_fact (a.l_fact), ipvt (a.ipvt) { }
+
+  base_lu (const lu_type& l, const lu_type& u, 
+           const PermMatrix& p);
 
   base_lu& operator = (const base_lu& a)
     {
       if (this != &a)
 	{
 	  a_fact = a.a_fact;
+          l_fact = a.l_fact;
 	  ipvt = a.ipvt;
 	}
       return *this;
@@ -51,11 +56,15 @@
 
   ~base_lu (void) { }
 
+  bool packed (void) const;
+
+  void unpack (void);
+
   lu_type L (void) const;
 
   lu_type U (void) const;
 
-  lu_type Y (void) const { return a_fact; }
+  lu_type Y (void) const;
 
   PermMatrix P (void) const;
 
@@ -64,8 +73,8 @@
 protected:
 
   Array<octave_idx_type> getp (void) const;
-  lu_type a_fact;
-  MArray<octave_idx_type> ipvt;
+  lu_type a_fact, l_fact;
+  Array<octave_idx_type> ipvt;
 };
 
 #endif