Definition
An instance of data type vector is a vector of variables of type double.
#include < LEDA/vector.h >
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). | ||
vector | v(vector w, int prec) | creates an instance v of type vector; v is initialized to a copy of w. The second argument is for compatibility with rat_vector. |
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.hcoord(int i) | for compatibility with rat_vector. |
double | v.coord(int i) | for compatibility with rat_vector. |
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
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.