toon-members
[Top][All Lists]
Advanced

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

[Toon-members] TooN SymEigen.h


From: Edward Rosten
Subject: [Toon-members] TooN SymEigen.h
Date: Mon, 24 Aug 2009 13:02:05 +0000

CVSROOT:        /cvsroot/toon
Module name:    TooN
Changes by:     Edward Rosten <edrosten>        09/08/24 13:02:05

Modified files:
        .              : SymEigen.h 

Log message:
        Docs

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/TooN/SymEigen.h?cvsroot=toon&r1=1.17&r2=1.18

Patches:
Index: SymEigen.h
===================================================================
RCS file: /cvsroot/toon/TooN/SymEigen.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- SymEigen.h  24 Jul 2009 17:30:46 -0000      1.17
+++ SymEigen.h  24 Aug 2009 13:02:05 -0000      1.18
@@ -39,14 +39,19 @@
 
 namespace TooN {
 
-///Default condition number for SymEigen::backsub, SymEigen::get_pinv and 
SymEigen::get_inv_diag
-static const double symeigen_condition_no=1e9;
 
-///Helper struct for computing eigensystems, to allow for specialization on
-///2x2 matrices.
-///@ingroup gInternal
-template <int Size> struct ComputeSymEigen {
+namespace Internal{
+       ///Default condition number for SymEigen::backsub, SymEigen::get_pinv 
and SymEigen::get_inv_diag
+       static const double symeigen_condition_no=1e9;
+       
+       ///@internal
+       ///@brief Compute eigensystems for sizes > 2
+       ///Helper struct for computing eigensystems, to allow for 
specialization on
+       ///2x2 matrices.
+       ///@ingroup gInternal
+       template <int Size> struct ComputeSymEigen {
        
+               ///@internal
        ///Compute an eigensystem.
        ///@param m Input matrix (assumed to be symmetric)
        ///@param evectors Eigen vector output
@@ -74,10 +79,19 @@
                                        << "M = " << m << std::endl;
                }
        }
-};
+       };
 
-template <> struct ComputeSymEigen<2> {
+       ///@internal
+       ///@brief Compute 2x2 eigensystems 
+       ///Helper struct for computing eigensystems, specialized on 2x2 
matrices.
+       ///@ingroup gInternal
+       template <> struct ComputeSymEigen<2> {
 
+               ///@internal
+               ///Compute an eigensystem.
+               ///@param m Input matrix (assumed to be symmetric)
+               ///@param eig Eigen vector output
+               ///@param ev Eigen values output
        template<typename P, typename B>
        static inline void compute(const Matrix<2,2,P,B>& m, Matrix<2,2,P>& 
eig, Vector<2, P>& ev) {
                double trace = m[0][0] + m[1][1];
@@ -102,6 +116,8 @@
                eig[1][0] = -eig[0][1];
                eig[1][1] = eig[0][0];
        }
+       };
+
 };
                
 /**
@@ -146,7 +162,7 @@
        inline void compute(const Matrix<R,C,Precision,B>& m){
                SizeMismatch<R, C>::test(m.num_rows(), m.num_cols());
                SizeMismatch<R, Size>::test(m.num_rows(), 
my_evectors.num_rows());
-               ComputeSymEigen<Size>::compute(m, my_evectors, my_evalues);
+               Internal::ComputeSymEigen<Size>::compute(m, my_evectors, 
my_evalues);
        }
 
        /// Calculate result of multiplying the (pseudo-)inverse of M by a 
vector. 




reply via email to

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