OpenWalnut  1.4.0
WOSSIMHelper.h
00001 //---------------------------------------------------------------------------
00002 //
00003 // Project: OpenWalnut ( http://www.openwalnut.org )
00004 //
00005 // Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
00006 // For more information see http://www.openwalnut.org/copying
00007 //
00008 // This file is part of OpenWalnut.
00009 //
00010 // OpenWalnut is free software: you can redistribute it and/or modify
00011 // it under the terms of the GNU Lesser General Public License as published by
00012 // the Free Software Foundation, either version 3 of the License, or
00013 // (at your option) any later version.
00014 //
00015 // OpenWalnut is distributed in the hope that it will be useful,
00016 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 // GNU Lesser General Public License for more details.
00019 //
00020 // You should have received a copy of the GNU Lesser General Public License
00021 // along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
00022 //
00023 //---------------------------------------------------------------------------
00024 
00025 #ifndef WOSSIMHELPER_H
00026 #define WOSSIMHELPER_H
00027 
00028 #ifdef OW_USE_OSSIM
00029     #include <algorithm>
00030 //    #include <iostream>
00031     #include <vector>
00032 
00033     #include <matrix/newmat.h>
00034 
00035     #include <boost/shared_ptr.hpp>
00036 
00037     #include "WMatrix.h"
00038     #include "WValue.h"
00039 
00040     /**
00041      * Class with functions to use the GNU scientific library
00042      */
00043     class WOSSIMHelper
00044     {
00045     public:
00046       static boost::shared_ptr< NEWMAT::Matrix > OWMatrixToOSSIMMatrix( const WMatrix< double > &input );
00047       static WMatrix< double > OSSIMMatrixToOWMatrix( const NEWMAT::Matrix& input );
00048       static WMatrix< double > OSSIMDiagonalMatrixToOWMatrix( const NEWMAT::DiagonalMatrix& input );
00049       static WValue< double > OSSIMDiagonalMatrixToOWVector( const NEWMAT::DiagonalMatrix& input );
00050       // static gsl_vector* OWVectorToOSSIMVector( const WValue<double> &input );
00051       // static WValue<double> OSSIMVectorToOWVector( const gsl_vector* input );
00052 
00053       // computes the SVD of the Matrix A
00054       static void computeSVD( const WMatrix< double >& A,
00055                               WMatrix< double >& U,
00056                               WMatrix< double >& V,
00057                               WValue< double >& S );
00058       // computes the pseudo inverse of the Matrix A
00059       // static WMatrix<double> pseudoInverse( const WMatrix<double>& input );
00060     };
00061 #endif  // OW_USE_OSSIM
00062 
00063 #endif  // WOSSIMHELPER_H