SawVector.h

00001 /***************************************************************************
00002  *   Copyright (C) 2005 by Nestor Aguirre                                  *
00003  *   nfaguirrec@unal.edu.co                                                *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  *                                                                         *
00010  *   This program is distributed in the hope that it will be useful,       *
00011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00013  *   GNU General Public License for more details.                          *
00014  *                                                                         *
00015  *   You should have received a copy of the GNU General Public License     *
00016  *   along with this program; if not, write to the                         *
00017  *   Free Software Foundation, Inc.,                                       *
00018  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
00019  ***************************************************************************/
00020 #ifndef GPPVECTOR_H
00021 #define GPPVECTOR_H
00022 
00023 /***********************************
00024 * gsl Library
00025 */
00026 #include <gsl/gsl_vector.h>
00027 #include <gsl/gsl_math.h>
00028 #include <gsl/gsl_blas.h>
00029 
00030 //**********************************
00031 
00032 /***********************************
00033 * Project
00034 */
00035 #include <SawObject.h>
00036 
00037 //**********************************
00038 
00049 class SawVector : public SawObject
00050 {
00051         public:
00052                 SawVector( uint size = 1, double a = 0.0 );
00053                 SawVector( double* array, uint size );
00054                 SawVector( const SawVector& vector );
00055                 void operator = ( const SawVector& vector );
00056                 ~SawVector();
00057                 
00058                 void swapElements( uint i, uint j ) ;
00059                 void reverse() ;
00060                 
00061                 gsl_vector* getGSLVector() const ;
00062                 void setGSLVector( gsl_vector* vector ) ;
00063                 uint getSize() const ;
00064                 double get( uint i ) const;
00065                 void set( uint i, double value );
00066                 
00067                 bool operator == ( SawVector vector );
00068                 bool operator != ( SawVector vector );
00069                 
00070                 double getMax( uint* i=NULL ) const ;
00071                 double getMin( uint* i=NULL ) const ;
00072                 
00073                 bool isNull() const ;
00074                 
00075                 SawVector operator + ( SawVector vector );
00076                 SawVector operator - ( SawVector vector );
00077                 double operator * ( SawVector vector );
00078                 double getEuclideanNorm() ;
00079                 
00080                 friend SawVector operator * ( SawVector vector, double a );
00081                 friend SawVector operator * ( double a, SawVector vector );
00082                 friend SawVector operator + ( SawVector vector, double a );
00083                 friend SawVector operator + ( double a, SawVector vector );
00084                 friend SawVector operator ^ ( double a, SawVector vector );
00085                 
00086                 friend ostream& operator << ( ostream& os, const SawVector& e ) ;
00087                 friend istream& operator >> ( istream& is, const SawVector& e ) ;
00088                 
00089         private:
00090                 gsl_vector* vector ;
00091                 uint size ;
00092 };
00093 
00094 #endif

Generado el Sun Jul 22 18:05:41 2007 para SAW por  doxygen 1.5.1