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.