maliput
|
Base class for an N-dimensional vector.
This class follows the Curiosly Recurring Template Pattern design. Instantiated templates for the following kinds of N's are provided:
N | Is the dimension of the vector. |
Derived | Is the derived class type. |
#include <include/maliput/math/vector.h>
Public Member Functions | |
VectorBase () | |
Constructs a null N-dimensional vector. More... | |
VectorBase (std::array< double, N > values) | |
Constructs an N-dimensional vector from a std::array object;. More... | |
VectorBase (std::initializer_list< double > values) | |
Constructs an N-dimensional vector using initializing list;. More... | |
VectorBase (const VectorBase< N, Derived > &other)=default | |
Copy constructor. More... | |
VectorBase (VectorBase< N, Derived > &&other)=default | |
Move constructor. More... | |
double | dot (const VectorBase< N, Derived > &vector) const |
double | norm () const |
void | normalize () |
Divides each vector component by norm() . More... | |
Derived | normalized () const |
std::size_t | size () const |
std::array< double, N > | to_array () const |
Derived & | operator= (const VectorBase< N, Derived > &other) |
Assignment operator overload. More... | |
Derived & | operator= (const VectorBase< N, Derived > &&other) |
Move assignment operator overload. More... | |
double | operator[] (std::size_t index) const |
Constant subscripting array operator overload. More... | |
double & | operator[] (std::size_t index) |
Subscripting array operator overload. More... | |
bool | operator== (const VectorBase< N, Derived > &vector) const |
Equality operator overload. More... | |
bool | operator!= (const VectorBase< N, Derived > &vector) const |
Inequality operator overload. More... | |
Derived | operator+ (const VectorBase< N, Derived > &vector) const |
Add operator overload. More... | |
Derived & | operator+= (const VectorBase< N, Derived > &vector) |
Add and assignment operator overload. More... | |
Derived | operator- (const VectorBase< N, Derived > &vector) const |
Substract operator overload. More... | |
Derived | operator/ (double scalar) const |
Divide operator overload between a VectorBase<N, Derived> vector and a double. More... | |
std::string | to_str () const |
Static Public Member Functions | |
static Derived | Zero () |
static Derived | Ones () |
static Derived | FromStr (const std::string &vector_str) |
Parses vector_str that should come in the following format "{A, B, C, ...}" (white spaces could or could not be there). More... | |
Static Public Attributes | |
static constexpr std::size_t | kDimension {N} |
The dimension of the vector. More... | |
Protected Attributes | |
std::array< double, N > | values_ {} |
Friends | |
template<std::size_t N_, typename Derived_ > | |
Derived_ | operator* (const VectorBase< N_, Derived_ > &vector, double scalar) |
Product operator overload between a vector and a double. More... | |
template<std::size_t N_, typename Derived_ > | |
Derived_ | operator* (double scalar, const VectorBase< N_, Derived_ > &vector) |
Product operator overload between a double and a vector. More... | |
template<std::size_t N_, typename Derived_ > | |
std::ostream & | operator<< (std::ostream &os, const VectorBase< N_, Derived_ > &vector) |
Insertion operator overload. More... | |
Constructs a null N-dimensional vector.
VectorBase | ( | std::array< double, N > | values | ) |
Constructs an N-dimensional vector from a std::array object;.
common::assertion_error | When size of values differs with the N parameter. |
VectorBase | ( | std::initializer_list< double > | values | ) |
Constructs an N-dimensional vector using initializing list;.
common::assertion_error | When size of values differs with the N parameter |
|
default |
Copy constructor.
|
default |
Move constructor.
double dot | ( | const VectorBase< N, Derived > & | vector | ) | const |
*this
and vector
.
|
static |
Parses vector_str
that should come in the following format "{A, B, C, ...}" (white spaces could or could not be there).
maliput::common::assertion_error | When vector_str does not follow the specified format. |
vector_str
. double norm |
void normalize |
Divides each vector component by norm()
.
Derived normalized |
|
static |
bool operator!= | ( | const VectorBase< N, Derived > & | vector | ) | const |
Inequality operator overload.
Derived operator+ | ( | const VectorBase< N, Derived > & | vector | ) | const |
Add operator overload.
Derived & operator+= | ( | const VectorBase< N, Derived > & | vector | ) |
Add and assignment operator overload.
Derived operator- | ( | const VectorBase< N, Derived > & | vector | ) | const |
Substract operator overload.
Derived operator/ | ( | double | scalar | ) | const |
Divide operator overload between a VectorBase<N, Derived> vector and a double.
Derived & operator= | ( | const VectorBase< N, Derived > && | other | ) |
Move assignment operator overload.
other | Derived object. |
Derived & operator= | ( | const VectorBase< N, Derived > & | other | ) |
Assignment operator overload.
other | Derived object. |
bool operator== | ( | const VectorBase< N, Derived > & | vector | ) | const |
Equality operator overload.
double & operator[] | ( | std::size_t | index | ) |
Subscripting array operator overload.
index | The index of the vector element. |
index
.common::assertion_error | When index is out of range. |
double operator[] | ( | std::size_t | index | ) | const |
Constant subscripting array operator overload.
index | The index of the vector element. |
index
.common::assertion_error | When index is out of range. |
std::size_t size | ( | ) | const |
*this
. std::array<double, N> to_array | ( | ) | const |
std::string to_str |
|
static |
|
friend |
Product operator overload between a vector and a double.
|
friend |
Product operator overload between a double and a vector.
|
friend |
Insertion operator overload.
|
staticconstexpr |
The dimension of the vector.
|
protected |