![]() |
OpenLB 1.8.1
|
efficient implementation of a vector class More...
#include <cstring>#include <type_traits>#include <array>#include "scalarVector.h"#include "utilities/omath.h"#include "utilities/oalgorithm.h"#include "olbDebug.h"
Include dependency graph for vector.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| class | olb::Vector< T, Size > |
| Plain old scalar vector. More... | |
Namespaces | |
| namespace | olb |
| Top level namespace for all of OpenLB. | |
Typedefs | |
| template<typename T , typename DESCRIPTOR , typename FIELD > | |
| using | olb::FieldD |
| Vector storing a single field instance. | |
Functions | |
| template<typename T , typename... Ts> | |
| olb::Vector (T &&t, Ts &&... ts) -> Vector< std::remove_cvref_t< T >, 1+sizeof...(Ts)> | |
| template<typename T , typename IMPL , typename IMPL_ > | |
| constexpr T | olb::crossProduct2D (const ScalarVector< T, 2, IMPL > &a, const ScalarVector< T, 2, IMPL_ > &b) |
| template<typename T , typename IMPL , typename IMPL_ > | |
| constexpr Vector< T, 3 > | olb::crossProduct3D (const ScalarVector< T, 3, IMPL > &a, const ScalarVector< T, 3, IMPL_ > &b) any_platform |
| template<typename T , unsigned D, typename IMPL , typename IMPL_ > | |
| auto | olb::crossProduct (const ScalarVector< T, D, IMPL > &a, const ScalarVector< T, D, IMPL_ > &b) any_platform |
| template<typename T , unsigned D, typename IMPL > | |
| constexpr Vector< T, D > | olb::normalize (const ScalarVector< T, D, IMPL > &a, T scale=T{1}) |
| template<typename T , unsigned D, typename IMPL > | |
| constexpr Vector< T, D > | olb::abs (const ScalarVector< T, D, IMPL > &a) |
| template<typename T , unsigned D, typename IMPL > | |
| constexpr Vector< T, D > | olb::round (const ScalarVector< T, D, IMPL > &a) any_platform |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, Vector< T, D > > | olb::operator+ (U a, const ScalarVector< T, D, IMPL > &b) any_platform |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, Vector< T, D > > | olb::operator+ (const ScalarVector< T, D, IMPL > &a, U b) any_platform |
| template<typename T , unsigned D, typename IMPL , typename IMPL_ > | |
| constexpr Vector< T, D > | olb::operator+ (const ScalarVector< T, D, IMPL > &a, const ScalarVector< T, D, IMPL_ > &b) any_platform |
| template<typename T , typename W , unsigned D, typename IMPL , typename IMPL_ > | |
| constexpr Vector< decltype(T{}+W{}), D > | olb::operator+ (const ScalarVector< T, D, IMPL > &a, const ScalarVector< W, D, IMPL_ > &b) any_platform |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, Vector< T, D > > | olb::operator- (U a, const ScalarVector< T, D, IMPL > &b) any_platform |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, Vector< T, D > > | olb::operator- (const ScalarVector< T, D, IMPL > &a, U b) any_platform |
| template<typename T , unsigned D, typename IMPL , typename IMPL_ > | |
| constexpr Vector< T, D > | olb::operator- (const ScalarVector< T, D, IMPL > &a, const ScalarVector< T, D, IMPL_ > &b) any_platform |
| template<typename T , typename W , unsigned D, typename IMPL , typename IMPL_ > | |
| constexpr Vector< decltype(T{}-W{}), D > | olb::operator- (const ScalarVector< T, D, IMPL > &a, const ScalarVector< W, D, IMPL_ > &b) any_platform |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, Vector< decltype(T{} *U{}), D > > | olb::operator* (U a, const ScalarVector< T, D, IMPL > &b) any_platform |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, Vector< decltype(T{} *U{}), D > > | olb::operator* (const ScalarVector< T, D, IMPL > &a, U b) any_platform |
| template<typename T , typename U , unsigned D, typename IMPL , typename IMPL_ > | |
| constexpr auto | olb::operator* (const ScalarVector< T, D, IMPL > &a, const ScalarVector< U, D, IMPL_ > &b) any_platform |
| Inner product. | |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, Vector< T, D > > | olb::operator/ (const ScalarVector< T, D, IMPL > &a, U b) any_platform |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, Vector< T, D > > | olb::operator% (const ScalarVector< T, D, IMPL > &a, U b) any_platform |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, bool > | olb::operator< (U lhs, const ScalarVector< T, D, IMPL > &rhs) any_platform |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, bool > | olb::operator> (const ScalarVector< T, D, IMPL > &lhs, U rhs) any_platform |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, bool > | olb::operator<= (U lhs, const ScalarVector< T, D, IMPL > &rhs) any_platform |
| template<typename T , unsigned D, typename U , typename IMPL > | |
| constexpr meta::enable_if_arithmetic_t< U, bool > | olb::operator>= (const ScalarVector< T, D, IMPL > &lhs, U rhs) any_platform |
| template<typename T , unsigned D, typename IMPL , typename IMPL_ > | |
| constexpr Vector< T, D > | olb::minv (const ScalarVector< T, D, IMPL > &v, const ScalarVector< T, D, IMPL_ > &w) |
| template<typename T , unsigned D, typename IMPL , typename IMPL_ > | |
| constexpr Vector< T, D > | olb::maxv (const ScalarVector< T, D, IMPL > &v, const ScalarVector< T, D, IMPL_ > &w) |
| template<typename T , unsigned D, typename IMPL > | |
| constexpr T | olb::max (const ScalarVector< T, D, IMPL > &v) |
efficient implementation of a vector class
Definition in file vector.h.