Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

gsl::vector_float Class Reference

#include <vector_float.h>

Inheritance diagram for gsl::vector_float::

gsl::vector_float_view List of all members.

Public Methods

 vector_float ()
 vector_float (const vector_float &other)
template<class oclass>  vector_float (const oclass &other)
 ~vector_float ()
 vector_float (const size_t &n, bool clear=true)
 vector_float (const int &n, bool clear=true)
void resize (size_t n)
template<class oclass> void copy (const oclass &other)
void copy (const vector_float &other)
size_t size () const
gsl_vector_float* gslobj ()
const gsl_vector_float* gslobj () const
float get (size_t i) const
void set (size_t i, float x)
float& operator[] (size_t i)
const float& operator[] (size_t i) const
float& operator() (size_t i)
const float& operator() (size_t i) const
void set_all (float x)
void set_zero ()
int set_basis (size_t i)
int fwrite (FILE *stream) const
int fread (FILE *stream)
int fprintf (FILE *stream, const char *format) const
int fscanf (FILE *stream)
vector_float_view subvector (size_t offset, size_t n)
const vector_float_view subvector (size_t offset, size_t n) const
vector_float& operator= (const vector_float &other)
int swap_elements (size_t i, size_t j)
int reverse ()
int operator+= (const vector_float &other)
int operator-= (const vector_float &other)
int operator *= (const vector_float &other)
int operator/= (const vector_float &other)
int operator *= (float x)
int operator+= (float x)
int operator/= (float x)
bool operator== (const vector_float &other) const
bool operator!= (const vector_float &other) const
float sum () const
double norm2 () const

Static Public Methods

vector_float_view create_vector_view (const gsl_vector_float_view &other)

Protected Methods

void free ()
void alloc (size_t n)
void calloc (size_t n)

Protected Attributes

gsl_vector_float* gsldata

Constructor & Destructor Documentation

gsl::vector_float::vector_float ( ) [inline]
 

Definition at line 40 of file vector_float.h.

00040 : gsldata(NULL) {;}

gsl::vector_float::vector_float ( const vector_float & other ) [inline]
 

Definition at line 41 of file vector_float.h.

00041 :gsldata(NULL) {copy(other);}

template<class oclass>
gsl::vector_float::vector_float ( const oclass & other ) [inline]
 

Definition at line 43 of file vector_float.h.

00043 :gsldata(NULL) {copy(other);}

gsl::vector_float::~vector_float ( ) [inline]
 

Definition at line 44 of file vector_float.h.

00044 {free();}

gsl::vector_float::vector_float ( const size_t & n,
bool clear = true ) [inline]
 

Definition at line 45 of file vector_float.h.

00046         {
00047                 if(clear){this->calloc(n);}
00048                 else     {this->alloc(n);}
00049         }

gsl::vector_float::vector_float ( const int & n,
bool clear = true ) [inline]
 

Definition at line 50 of file vector_float.h.

00051         {
00052                 if(clear){this->calloc(n);}
00053                 else     {this->alloc(n);}
00054         }


Member Function Documentation

void gsl::vector_float::alloc ( size_t n ) [inline, protected]
 

Definition at line 37 of file vector_float.h.

Referenced by resize(), and vector_float().

00037 {gsldata=gsl_vector_float_alloc(n);}

void gsl::vector_float::calloc ( size_t n ) [inline, protected]
 

Definition at line 38 of file vector_float.h.

Referenced by vector_float().

00038 {gsldata=gsl_vector_float_calloc(n);}

void gsl::vector_float::copy ( const vector_float & other )
 

Definition at line 58 of file vector_float.cc.

00059 {
00060                 resize(other.size());
00061                 gsl_vector_float_memcpy (gsldata,other.gsldata);
00062 }

template<class oclass>
void gsl::vector_float::copy ( const oclass & other ) [inline]
 

Definition at line 59 of file vector_float.h.

Referenced by operator=(), and vector_float().

00060                 {
00061                         resize(other.size());
00062                         for (size_t i=0;i<size();i++)
00063                         {
00064                                 gsl_vector_float_set(gsldata, i, (float)other[i]);
00065                         }
00066                 }

vector_float_view gsl::vector_float::create_vector_view ( const gsl_vector_float_view & other ) [static]
 

Definition at line 30 of file vector_float.cc.

00031 {
00032         vector_float view;
00033         view.gsldata = (gsl_vector_float*)malloc(sizeof(gsl_vector_float));
00034         *(view.gslobj()) = other.vector;
00035         view.gslobj()->owner = 0;
00036         return view;
00037 }

int gsl::vector_float::fprintf ( FILE * stream,
const char * format ) const [inline]
 

Definition at line 122 of file vector_float.h.

00122 {return gsl_vector_float_fprintf (stream, gsldata,format) ;}

int gsl::vector_float::fread ( FILE * stream ) [inline]
 

Definition at line 119 of file vector_float.h.

00119 {return gsl_vector_float_fread (stream, gsldata);}

void gsl::vector_float::free ( ) [inline, protected]
 

Definition at line 36 of file vector_float.h.

Referenced by gsl::vector_float_view::init(), resize(), and ~vector_float().

00036 {if(gsldata) gsl_vector_float_free(gsldata);gsldata=NULL;}

int gsl::vector_float::fscanf ( FILE * stream ) [inline]
 

Definition at line 125 of file vector_float.h.

00125 {return gsl_vector_float_fscanf (stream, gsldata); }

int gsl::vector_float::fwrite ( FILE * stream ) const [inline]
 

Definition at line 116 of file vector_float.h.

00116 {return gsl_vector_float_fwrite (stream, gsldata);}

float gsl::vector_float::get ( size_t i ) const [inline]
 

Definition at line 86 of file vector_float.h.

00086 {return gsl_vector_float_get(gsldata,i);}

const gsl_vector_float * gsl::vector_float::gslobj ( ) const [inline]
 

Definition at line 74 of file vector_float.h.

00074 {if (!gsldata){cout << "vector_float::gslobj ERROR, data not initialized!! " << endl; exit(-1);}return gsldata;}

gsl_vector_float * gsl::vector_float::gslobj ( ) [inline]
 

for interfacing with gsl c

Definition at line 73 of file vector_float.h.

00073 {if (!gsldata){cout << "vector_float::gslobj ERROR, data not initialized!! " << endl; exit(-1);}return gsldata;}

double gsl::vector_float::norm2 ( ) const
 

Definition at line 107 of file vector_float.cc.

00108 {
00109         vector t=*this;
00110         return gsl_blas_dnrm2(t.gslobj());
00111 }

int gsl::vector_float::operator *= ( float x ) [inline]
 

Definition at line 281 of file vector_float.h.

00281 {return gsl_vector_float_scale (gsldata, x);}

int gsl::vector_float::operator *= ( const vector_float & other ) [inline]
 

Definition at line 275 of file vector_float.h.

00275 {return gsl_vector_float_mul (gsldata, other.gsldata);}

bool gsl::vector_float::operator!= ( const vector_float & other ) const [inline]
 

Definition at line 292 of file vector_float.h.

00292 { return (!((*this)==other));}

const float & gsl::vector_float::operator() ( size_t i ) const [inline]
 

Definition at line 96 of file vector_float.h.

00096 { return *gsl_vector_float_ptr(gsldata,i);}

float & gsl::vector_float::operator() ( size_t i ) [inline]
 

Definition at line 95 of file vector_float.h.

00095 { return *gsl_vector_float_ptr(gsldata,i);}

int gsl::vector_float::operator+= ( float x ) [inline]
 

Definition at line 285 of file vector_float.h.

00285 {return gsl_vector_float_add_constant (gsldata,x);}

int gsl::vector_float::operator+= ( const vector_float & other ) [inline]
 

Definition at line 268 of file vector_float.h.

00268 {return gsl_vector_float_add (gsldata, other.gsldata);}

int gsl::vector_float::operator-= ( const vector_float & other ) [inline]
 

Definition at line 271 of file vector_float.h.

00271 {return gsl_vector_float_sub (gsldata, other.gsldata);}

int gsl::vector_float::operator/= ( float x ) [inline]
 

Definition at line 288 of file vector_float.h.

00288 {return gsl_vector_float_scale (gsldata, 1/x);}

int gsl::vector_float::operator/= ( const vector_float & other ) [inline]
 

Definition at line 278 of file vector_float.h.

00278 {return gsl_vector_float_div (gsldata, other.gsldata);}

vector_float & gsl::vector_float::operator= ( const vector_float & other ) [inline]
 

Definition at line 246 of file vector_float.h.

00246 {copy(other);return (*this);}

bool gsl::vector_float::operator== ( const vector_float & other ) const
 

Definition at line 65 of file vector_float.cc.

00066 {
00067         if (size() != other.size())
00068                 return false;
00069         for (int i=0;i<size(); i++)
00070         {
00071                 if (this->operator[](i) != other[i])
00072                         return false;
00073         }
00074         return true;
00075 }

const float & gsl::vector_float::operator[] ( size_t i ) const [inline]
 

Definition at line 93 of file vector_float.h.

00093 { return *gsl_vector_float_ptr(gsldata,i);}

float & gsl::vector_float::operator[] ( size_t i ) [inline]
 

Definition at line 92 of file vector_float.h.

Referenced by operator==().

00092 { return *gsl_vector_float_ptr(gsldata,i);}

void gsl::vector_float::resize ( size_t n )
 

Definition at line 40 of file vector_float.cc.

Referenced by copy().

00041 {
00042         if (gsldata)
00043         {
00044                 if (n==size())
00045                         return;
00046                 if (!gsldata->owner)
00047                 {
00048                         cout << "vector_float::resize ERROR can't resize a vector view" << endl;
00049                         exit(-1);
00050 //                      GSL_ERROR("You can't resize a vector view", GSL_EINVAL);
00051                 }
00052                 free();
00053         }
00054         alloc(n);
00055 }

int gsl::vector_float::reverse ( ) [inline]
 

Definition at line 261 of file vector_float.h.

00261 {return  gsl_vector_float_reverse (gsldata) ;}

void gsl::vector_float::set ( size_t i,
float x ) [inline]
 

Definition at line 89 of file vector_float.h.

00089 {gsl_vector_float_set(gsldata,i,x);}

void gsl::vector_float::set_all ( float x ) [inline]
 

Definition at line 103 of file vector_float.h.

00103 {gsl_vector_float_set_all (gsldata,x);}

int gsl::vector_float::set_basis ( size_t i ) [inline]
 

Definition at line 108 of file vector_float.h.

00108 {return gsl_vector_float_set_basis (gsldata,i);}

void gsl::vector_float::set_zero ( ) [inline]
 

Definition at line 105 of file vector_float.h.

00105 {gsl_vector_float_set_zero (gsldata);}

size_t gsl::vector_float::size ( ) const [inline]
 

Definition at line 70 of file vector_float.h.

Referenced by copy(), operator==(), resize(), and sum().

00070 {if (!gsldata) {cout << "vector_float::size vector not initialized" << endl; exit(-1);}return gsldata->size;}

const vector_float_view gsl::vector_float::subvector ( size_t offset,
size_t n ) const
 

Definition at line 86 of file vector_float.cc.

00087 {
00088         gsl_vector_float_view view = gsl_vector_float_subvector (gsldata, offset, n);
00089         return vector_float_view::create_vector_view(view);
00090 }

vector_float_view gsl::vector_float::subvector ( size_t offset,
size_t n )
 

Definition at line 78 of file vector_float.cc.

00079 {
00080         gsl_vector_float_view view = gsl_vector_float_subvector (gsldata, offset, n);
00081         return vector_float_view::create_vector_view(view);
00082 }

float gsl::vector_float::sum ( ) const
 

returns sum of all the vector elements.

Definition at line 93 of file vector_float.cc.

00094 {
00095         int i;
00096         float sum = 0;
00097 
00098         for ( i = 0; i < size(); i++ ) 
00099         {
00100                 sum += gsl_vector_float_get(gsldata, i);
00101         }
00102 
00103         return( sum );
00104 }

int gsl::vector_float::swap_elements ( size_t i,
size_t j ) [inline]
 

Definition at line 257 of file vector_float.h.

00257 {return gsl_vector_float_swap_elements (gsldata, i,j);}


Member Data Documentation

gsl_vector_float * gsl::vector_float::gsldata [protected]
 

Definition at line 35 of file vector_float.h.


The documentation for this class was generated from the following files:
Generated at Sun Dec 16 23:44:46 2001 for gslwrap by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001