This is Vector.h in view mode; [Download] [Up]
// // Programmer: Craig Stuart Sapp <craig@ccrma.stanford.edu> // Creation Date: Mon Apr 21 21:18:35 GMT-0800 1997 // Last Modified: Thu Sep 11 04:17:44 GMT-0800 1997 // Filename: .../circleid/Vector.h // Syntax: C++ // $Smake: cc -Wall -g -c %b.cc -I../../include && rm -f %b.o // #ifndef _VECTOR_H_INCLUDED #define _VECTOR_H_INCLUDED #include <iostream.h> #include "ComplexD.h" template<class type> class Vector { public: Vector (void); Vector (int aDimension); Vector (type xx, type yy); Vector (type xx, type yy, type zz); Vector (const Vector<type>& aVector); ~Vector (); int getDimension (void) const; double norm (void); type& operator[] (int index); type operator[] (int index) const; Vector<type>& operator= (const Vector<type>& aVector); Vector<type>& operator+= (const Vector<type>& aVector); Vector<type> operator+ (const Vector<type>& aVector) const; Vector<type>& operator-= (const Vector<type>& aVector); Vector<type> operator- (const Vector<type>& aVector) const; Vector<type> operator- (void) const; Vector<type>& operator*= (const Vector<type>& aVector); Vector<type>& operator*= (type aNumber); Vector<type> operator* (const Vector<type>& aVector) const; Vector<type> operator* (type aNumber) const; Vector<type>& operator/= (const Vector<type>& aVector); Vector<type>& operator/= (type aNumber); Vector<type> operator/ (const Vector<type>& aVector) const; Vector<type> operator/ (type aNumber) const; int operator== (Vector<type>& aVector); void print (void); void setDimension (int aDimension); type& x (void); type& y (void); type& z (void); void zero (type aValue = 0); friend ostream& operator<<(ostream& output, const Vector<type>& aVector); protected: int dimension; type* points; }; template<class type> ostream& operator<<(ostream& output, const Vector<type>& aVector); template<class type> Vector<type> operator*(type aNumber, Vector<type>& aVector); #ifdef VISUAL #include "Vector.cpp" #else // needed for the compiler version being used: #include "Vector.cc" #endif // Vector manipulation functions template<class type> type normSquare(const Vector<type>& aVector); template<class type> double norm(const Vector<type>& aVector); /* ComplexD ip(const Vector<ComplexD>& vector1, const Vector<ComplexD>& vector2); */ template<class type> type ip(const Vector<type>& vector1, const Vector<type>& vector2); template<class type> Vector<type> midpoint(const Vector<type>& a, const Vector<type>& b); #endif _VECTOR_H_INCLUDED
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.