OpenLB 1.7
|
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"
Go to the source code of this file.
Classes | |
class | olb::Vector< T, D > |
Plain old scalar vector. More... | |
Namespaces | |
namespace | olb |
Top level namespace for all of OpenLB. | |
Functions | |
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) |
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 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, 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) |
efficient implementation of a vector class
Definition in file vector.h.