linearAlgebra.h

Go to the documentation of this file.
00001 
00016 #ifndef _DLR_LINEARALGEBRA_LINEARALGEBRA_H_
00017 #define _DLR_LINEARALGEBRA_LINEARALGEBRA_H_
00018 
00019 #include <dlrCommon/types.h>
00020 #include <dlrNumeric/array1D.h>
00021 #include <dlrNumeric/array2D.h>
00022 
00023 namespace dlr {
00024 
00025   namespace linearAlgebra {
00026 
00036   Float64
00037   determinant(const Array2D<Float64>& A);
00038 
00039 
00052   Array1D<Float64>
00053   eigenvaluesSymmetric(const Array2D<Float64>& inputArray);
00054 
00055 
00076   void
00077   eigenvectorsSymmetric(const Array2D<Float64>& inputArray,
00078                         Array1D<Float64>& eigenvalues,
00079                         Array2D<Float64>& eigenvectors);
00080 
00081   
00091   Array2D<Float64>
00092   inverse(const Array2D<Float64>& A);
00093 
00094   
00114   std::pair<Float64, Float64>
00115   linearFit(const Array1D<Float64>& array0,
00116             const Array1D<Float64>& array1);
00117 
00118   
00136   Array1D<Float64>
00137   linearLeastSquares(const Array2D<Float64>& A, const Array1D<Float64>& b);
00138 
00139 
00153   void
00154   linearSolveInPlace(Array2D<Float64>& A, Array1D<Float64>& b);
00155 
00156 
00171   void
00172   linearSolveInPlace(Array2D<Float64>& A, Array2D<Float64>& b);
00173   
00174 
00199   Array1D<Float64>
00200   linearSolveTridiagonal(const Array1D<Float64>& subDiagonal,
00201                          const Array1D<Float64>& centerDiagonal,
00202                          const Array1D<Float64>& superDiagonal,
00203                          const Array1D<Float64>& bVector);
00204   
00205     
00217   Array2D<Float64>
00218   pseudoinverse(const Array2D<Float64>& A);
00219 
00220 
00238   void
00239   singularValueDecomposition(const Array2D<Float64>& inputArray,
00240                              Array2D<Float64>& uArray,
00241                              Array1D<Float64>& sigmaArray,
00242                              Array2D<Float64>& vTransposeArray);
00243 
00244   
00255   Array1D<Float64>
00256   singularValues(const Array2D<Float64>& inputArray);
00257   
00258   } // namespace linearAlgebra
00259   
00260 } // namespace dlr
00261 
00262 
00263 /* ======= Declarations to maintain compatibility with legacy code. ======= */
00264 
00265 namespace dlr {
00266 
00267   using linearAlgebra::determinant;
00268   using linearAlgebra::eigenvaluesSymmetric;
00269   using linearAlgebra::eigenvectorsSymmetric;
00270   using linearAlgebra::inverse;
00271   using linearAlgebra::linearFit;
00272   using linearAlgebra::linearLeastSquares;
00273   using linearAlgebra::linearSolveInPlace;
00274   using linearAlgebra::linearSolveTridiagonal;
00275   using linearAlgebra::pseudoinverse;
00276   using linearAlgebra::singularValueDecomposition;
00277   using linearAlgebra::singularValues;
00278   
00279 } // namespace dlr
00280 
00281 #endif // #ifndef _DLR_LINEARALGEBRA_LINEARALGEBRA_H_

Generated on Mon Jul 9 20:34:03 2007 for dlrLibs Utility Libraries by  doxygen 1.5.2