// $Id: fvector.h,v 1.1.1.1 2000/11/02 08:47:16 fritzi Exp $ // This file is part of the DEAL Library // DEAL is Copyright(1995) by // Roland Becker, Guido Kanschat, Franz-Theo Suttmeier #ifndef __fvector_h #define __fvector_h #include #ifndef __types_h #include #endif #ifndef __errors_h #include #endif #ifndef __vectorbase_h #include #endif #ifndef __dvector_h #include #endif /* CLASS fVector */ class fVector : public VectorBase { friend class dFMatrix; protected: int dim, maxdim; float *val; public: ////////// fVector(); ////////// fVector(const fVector& v); ////////// fVector(int n); ////////// ~fVector(); ////////// void reinit(int n, int fast = 0); ////////// void reinit(const fVector&, int fast = 0); ////////// void reinit(const dVector&, int fast = 0); ////////// int n() const; // Abfrage der Dimension ////////// float operator()(int i) const; // read-only Zugriff ////////// float& operator()(int i); //Zugriff auf die Komponenten ////////// double operator*(const fVector& v) const; //Skalarprodukt ////////// fVector& operator=(double s); ////////// fVector& operator=(const fVector& v); // GROUP: Addition ////////// void add(const double); ////////// void add(const fVector&); ////////// void add(double, const fVector&); ////////// void add(double, const fVector&, double, const fVector&); // GROUP: Addition & scaling ////////// void sadd(double, const fVector&); ////////// void sadd(double, double, const fVector&); ////////// void sadd(double, double, const fVector&, double, const fVector&); ////////// void sadd(double, double, const fVector&, double, const fVector&, double, const fVector&); // GROUP: Assignment ////////// void equ(double, const fVector&); ////////// void equ(double, const fVector&, double, const fVector&); // GROUP: Assignment by component ////////// void czero(int); ////////// void cequ(int, const VectorBase&, double, int); ////////// void cequ(int, const VectorBase&, double, int, double, int); ////////// void cequ(int, const VectorBase&, double, int, double, int, double, int, double, int); // GROUP: Addition by component ////////// void cadd(int, const VectorBase&, double, int); ////////// void cadd(int, const VectorBase&, double, int, double, int); ////////// void cadd(int, const VectorBase&, double, int, double, int, double, int, double, int); ////////// virtual const char* name() const; ////////// // // Output of the vector in user-defined format. // void print(FILE* fp, const char* format = 0) const; }; inline int fVector::n() const { return dim; } inline float fVector::operator() (int i) const { THROW2( (i<0) || (i>=dim), IntError(IntError::Range,i)); return val[i]; } inline float& fVector::operator() (int i) { THROW2( (i<0) || (i>=dim), IntError(IntError::Range,i)); return val[i]; } #endif