VECTOR.H

Description : Class library defining a set of 3D vector operations

Header files called upon : iostream.h iomanip.h math.h

Files required in project : MATRIX.CPP

Class details are as follows:

Class declaration : Vector

Member variables (private)
float *vec; float pointer to vector elements
int size; number of vector elements
Constructors (public)
Vector() : vec(new float[3]), size(3) {}
Default constructor to allocate space for a 3D vector
eg Vector vec1;

Vector(float p, float q, float r) : vec(new float[3]), size(3)
Constructor for an initialized 3D vector
eg Vector vec1(0.1, 0.2, 0.3);

Vector(int i) : vec(new float[i], size(i) {}
Constructor to allocate space for a vector that has i number of dimensions
eg Vector vec1(4);

Vector(const Vector &v)
Constructor to copy an already existing vector into a previously undeclared vector
eg Vector vec2(vec1);
NB1 vec2 is previously undeclared, vec1 already initialized
NB2 function defined in MATRIX.CPP

~Vector()
Destructor
Member functions (public)
int GetSize()
Returns size of vector
eg int i = vec1.GetSize();

Vector& operator= (const Vector& v)
Overloads '=' operator for vector assignment
eg vec1 = vec2;
NB function defined in MATRIX.CPP

Vector operator+ (const Vector& v)
Overloads '+' operator for vector additionn
eg vec1 = vec2 + vec3;

Vector& operator+= (Vector& v)
Overloads '+=' operator for vector incrementation
eg vec1 += vec2;

Vector operator- (const Vector& v)
Overloads '-' operator for vector subtraction
eg vec1 = vec2 - vec3;

Vector& operator-= (Vector& v)
Overloads '-=' operator for vector decrementation
eg vec1 -= vec2;

float operator* (const Vector& v)
Overloads '*' operator to calculate scalar product between two vectors
eg float scl1 = vec1 * vec2;

Vector operator& (const Vector& v)
Overloads '&' operator to calculate vector product between two vectors
eg vec1 = vec2 & vec3;

Vector operator/ (float y)
Overloads '/' operator for division of a vector by a scalar
eg vec1 = vec2 / scl1;

Vector& operator/= (float y)
Overloads'/=' operator for vector normalization
eg vec1 /= scl1;

float mod()
Returns modulus of a vector
eg scl1 = vec1.mod();

float& operator() (int i)
Overloads parentheses operator to access a particular element in a vector
eg float scl1 = vec1(i);
NB 'i'th vector element corresponds to [i-1]th array element therefore v1(1) accesses first element

friend class Matrix
matrix class
NB defined in MATRIX.CPP

friend ostream& operator << (ostream &os, Vector &v)
Overloads '<<' operator to write out a vector
eg cout << vec1;
NB defined in MATRIX.CPP