pspp-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pspp-cvs] pspp/src/math/linreg linreg.h linreg.c ChangeLog


From: Jason H Stover
Subject: [Pspp-cvs] pspp/src/math/linreg linreg.h linreg.c ChangeLog
Date: Sun, 12 Aug 2007 02:36:51 +0000

CVSROOT:        /sources/pspp
Module name:    pspp
Changes by:     Jason H Stover <jstover>        07/08/12 02:36:51

Modified files:
        src/math/linreg: linreg.h linreg.c ChangeLog 

Log message:
        Added scope and explanation of use of conditional inverse; added 
appropriate enum constant

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/src/math/linreg/linreg.h?cvsroot=pspp&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/pspp/src/math/linreg/linreg.c?cvsroot=pspp&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/pspp/src/math/linreg/ChangeLog?cvsroot=pspp&r1=1.16&r2=1.17

Patches:
Index: linreg.h
===================================================================
RCS file: /sources/pspp/pspp/src/math/linreg/linreg.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- linreg.h    7 Jul 2007 06:14:24 -0000       1.17
+++ linreg.h    12 Aug 2007 02:36:50 -0000      1.18
@@ -27,8 +27,9 @@
 
 enum
 {
+  PSPP_LINREG_CONDITIONAL_INVERSE,
+  PSPP_LINREG_QR,
   PSPP_LINREG_SWEEP,
-  PSPP_LINREG_SVD
 };
 
 

Index: linreg.c
===================================================================
RCS file: /sources/pspp/pspp/src/math/linreg/linreg.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- linreg.c    7 Jul 2007 06:14:24 -0000       1.21
+++ linreg.c    12 Aug 2007 02:36:50 -0000      1.22
@@ -366,6 +366,18 @@
        }
       gsl_matrix_free (sw);
     }
+  else if (cache->method == PSPP_LINREG_CONDITIONAL_INVERSE)
+    {
+      /*
+       Use the SVD of X^T X to find a conditional inverse of X^TX. If
+       the SVD is X^T X = U D V^T, then set the conditional inverse
+       to (X^T X)^c = V D^- U^T. D^- is defined as follows: If entry
+       (i, i) has value sigma_i, then entry (i, i) of D^- is 1 /
+       sigma_i if sigma_i > 0, and 0 otherwise. Then solve the normal
+       equations by setting the estimated parameter vector to 
+       (X^TX)^c X^T Y.
+       */
+    }
   else
     {
       gsl_multifit_linear_workspace *wk;

Index: ChangeLog
===================================================================
RCS file: /sources/pspp/pspp/src/math/linreg/ChangeLog,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- ChangeLog   12 Apr 2007 22:40:53 -0000      1.16
+++ ChangeLog   12 Aug 2007 02:36:50 -0000      1.17
@@ -1,3 +1,11 @@
+2007-08-11  Jason Stover  <address@hidden>
+
+       * linreg.h (enum): Dropped ambiguous PSPP_LINREG_SVD in favor of
+       PSPP_LINREG_QR. Added PSPP_LINREG_CONDITIONAL_INVERSE.
+
+       * linreg.c (pspp_linreg): Added scope and comment for use of
+       generalized inverse to solve normal equations.
+
 2007-04-12  Jason Stover  <address@hidden>
 
        * linreg.c: (pspp_linreg_cache_free) Check for null pointer before




reply via email to

[Prev in Thread] Current Thread [Next in Thread]