// // Programmer: Craig Stuart Sapp // Creation Date: Mon Apr 21 21:18:35 GMT-0800 1997 // Last Modified: Thu Sep 11 04:17:44 GMT-0800 1997 // Filename: ...sig/code/base/Vector/Vector.h // Syntax: C++ // $Smake: cc -Wall -g -c %b.cpp -I../../../include && rm -f %b.o // #ifndef _VECTOR_H_INCLUDED #define _VECTOR_H_INCLUDED #include "ComplexD.h" #ifndef OLDCPP #include using namespace std; #else #include #endif template class Vector { public: Vector (void); Vector (int aDimension); Vector (type xx, type yy); Vector (type xx, type yy, type zz); Vector (const Vector& aVector); ~Vector (); int getDimension (void) const; double norm (void); type& operator[] (int index); type operator[] (int index) const; Vector& operator= (const Vector& aVector); Vector& operator+= (const Vector& aVector); Vector operator+ (const Vector& aVector) const; Vector& operator-= (const Vector& aVector); Vector operator- (const Vector& aVector) const; Vector operator- (void) const; Vector& operator*= (const Vector& aVector); Vector& operator*= (type aNumber); Vector operator* (const Vector& aVector) const; Vector operator* (type aNumber) const; Vector& operator/= (const Vector& aVector); Vector& operator/= (type aNumber); Vector operator/ (const Vector& aVector) const; Vector operator/ (type aNumber) const; int operator== (Vector& aVector); void print (void); void setDimension (int aDimension); type& x (void); type& y (void); type& z (void); void zero (type aValue = 0); protected: int dimension; type* points; }; template ostream& operator<<(ostream& output, const Vector& aVector); template Vector operator*(type aNumber, Vector& aVector); #include "Vector.cpp" /////////////////////////////////////////////////////////////////////////// // // Vector manipulation functions // template type normSquare(const Vector& aVector); template double norm(const Vector& aVector); /* ComplexD ip(const Vector& vector1, const Vector& vector2); */ template type ip(const Vector& vector1, const Vector& vector2); template Vector midpoint(const Vector& a, const Vector& b); #endif /* _VECTOR_H_INCLUDED */ // md5sum: 6ac11cb4079993717f52bae2eb158a3d Vector.h [20050403]