jama_cholesky_old.h Source File
Main Page Namespace List Compound List File List Compound Members
Copyright By PowCoder代写 加微信 powcoder
jama_cholesky_old.h
Go to the documentation of this file.00001 #ifndef JAMA_CHOLESKY_H
00002 #define JAMA_CHOLESKY_H
00004 #include “math.h”
00005 /* needed for sqrt() below. */
00008 namespace JAMA
00044 template
00045 class Cholesky
00047 TNT::Array2D
00048 int isspd; // 1 if matrix to be factored was SPD
00051 public:
00053 Cholesky();
00054 Cholesky(const TNT::Array2D
00055 TNT::Array2D
00056 int is_spd() const;
00060 template
00061 Cholesky
00067 template
00068 int Cholesky
00070 return isspd;
00076 template
00077 TNT::Array2D
00079 return L;
00088 template
00089 Cholesky
00093 int m = A.dim1();
00094 int n = A.dim2();
00096 isspd = (m == n);
00098 if (m != n)
00099 {
00100 L = TNT::Array2D
00101 return;
00102 }
00104 L = TNT::Array2D
00107 // Main loop.
00108 for (int j = 0; j < n; j++)
00109 {
00110 double d = 0.0;
00111 for (int k = 0; k < j; k++)
00112 {
00113 Real s = 0.0;
00114 for (int i = 0; i < k; i++)
00115 {
00116 s += L[k][i]*L[j][i];
00117 }
00118 L[j][k] = s = (A[j][k] - s)/L[k][k];
00119 d = d + s*s;
00120 isspd = isspd && (A[k][j] == A[j][k]);
00121 }
00122 d = A[j][j] - d;
00123 isspd = isspd && (d > 0.0);
00124 L[j][j] = sqrt(d > 0.0 ? d : 0.0);
00125 for (int k = j+1; k < n; k++)
00126 {
00127 L[j][k] = 0.0;
00128 }
00129 }
00133 // namespace JAMA
00135 #endif
00136 // JAMA_CHOLESKY_H
Generated at Mon Jan 20 07:47:17 2003 for JAMA/C++ by
1.2.5 written by Dimitri van Heesch,
© 1997-2001
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com