next up previous contents
Next: Real-Valued Matrices (matrix) Up: Number Types and Linear Previous: A Floating Point Filter

   
Real-Valued Vectors (vector)

Definition

An instance of data type vector is a vector of variables of type double.

Creation

vector v; creates an instance v of type vector; v is initialized to the zero-dimensional vector.

vector

v(int d); creates an instance v of type vector; v is initialized to the zero vector of dimension d.

vector

v(double a, double b); creates an instance v of type vector; v is initialized to the two-dimensional vector (a,b).

vector

v(double a, double b, double c);
    creates an instance v of type vector; v is initialized to the three-dimensional vector (a,b,c).

   

Operations

int v.dim() returns the dimension of v.
double& v[int i] returns i-th component of v.
Precondition: 0<= i <= v.dim()-1.
double v.sqr_length() returns the square of the Euclidean length of v.
double v.length() returns the Euclidean length of v.
vector v.norm() returns v normalized.
double v.angle(vector w) returns the angle between v and w.
vector v.rotate90() returns the v rotated by 90 degrees.
Precondition: v.dim() = 2
vector v.rotate(double a) returns the v rotated by an angle of a.
Precondition: v.dim() = 2
vector v + v1 Addition.
Precondition: v.dim() = v1.dim().
vector v - v1 Subtraction.
Precondition: v.dim() = v1.dim().
double v * v1 Scalar multiplication.
Precondition: v.dim() = v1.dim().
vector v * double r Componentwise multiplication with double r.
bool v == w Test for equality.
bool v != w Test for inequality.
void v.print(ostream& O) prints v componentwise to ostream O.
void v.print() prints v to cout.
void v.read(istream& I) reads d = v.dim() numbers from input stream I and writes them into v[0] ... v[d-1].
void v.read() reads v from cin.
ostream& ostream& O << v writes v componentwise to the output stream O.
istream& istream& I >> vector& v reads v componentwise from the input stream I.

Additional Operations for vectors in two and three-dimensional space

double v.xcoord() returns the zero-th cartesian coordinate of v.
double v.ycoord() returns the first cartesian coordinate of v.
double v.zcoord() returns the second cartesian coordinate of v.

Implementation

Vectors are implemented by arrays of real numbers. All operations on a vector v take time O(v.dim()), except for dim and [ ] which take constant time. The space requirement is O(v.dim()).

Be aware that the operations on vectors and matrices incur rounding errors and hence are not completely reliable. For example, if M is a matrix, b is a vector, and x is computed by x = M.solve(b) it is not necessarily true that the test b == M * b evaluates to true. The types integer_vector and integer_matrix provide exact linear algebra.


next up previous contents
Next: Real-Valued Matrices (matrix) Up: Number Types and Linear Previous: A Floating Point Filter
LEDA research project
1998-10-02