OpenLB 1.7
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
vector.h File Reference

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, 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)
 

Detailed Description

efficient implementation of a vector class

Definition in file vector.h.