ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
Vector.hpp File Reference

Vector implementation and trait types for boost qvm interoperability. More...

#include <boost/qvm/deduce_vec.hpp>
#include <boost/qvm/vec_traits.hpp>
#include "utils/Array.hpp"
#include <algorithm>
#include <cassert>
#include <cmath>
#include <cstddef>
#include <functional>
#include <initializer_list>
#include <iterator>
#include <numeric>
#include <span>
#include <type_traits>
#include <vector>
+ Include dependency graph for Vector.hpp:

Go to the source code of this file.

Classes

class  Utils::Vector< T, N >
 
struct  Utils::decay_to_scalar< T >
 Meta function to turns a Vector<1, T> into T. More...
 
struct  Utils::decay_to_scalar< Vector< T, N > >
 
struct  Utils::decay_to_scalar< Vector< T, 1 > >
 
struct  Utils::tuple_element< I, Vector< T, N > >
 
struct  Utils::tuple_size< Vector< T, N > >
 
struct  boost::qvm::vec_traits<::Utils::Vector< T, N > >
 
struct  boost::qvm::deduce_vec< Utils::Vector< T, 3 >, 3 >
 

Namespaces

namespace  Utils
 
namespace  boost
 
namespace  boost::qvm
 

Typedefs

template<class T >
using Utils::Vector3 = Vector< T, 3 >
 
template<std::size_t N>
using Utils::VectorXd = Vector< double, N >
 
using Utils::Vector2d = VectorXd< 2 >
 
using Utils::Vector3d = VectorXd< 3 >
 
using Utils::Vector4d = VectorXd< 4 >
 
using Utils::Vector6d = VectorXd< 6 >
 
using Utils::Vector9d = VectorXd< 9 >
 
template<std::size_t N>
using Utils::VectorXf = Vector< float, N >
 
using Utils::Vector3f = VectorXf< 3 >
 
template<std::size_t N>
using Utils::VectorXi = Vector< int, N >
 
using Utils::Vector3i = VectorXi< 3 >
 

Functions

template<std::size_t N, typename T >
constexpr bool Utils::operator< (Vector< T, N > const &a, Vector< T, N > const &b)
 
template<std::size_t N, typename T >
constexpr bool Utils::operator> (Vector< T, N > const &a, Vector< T, N > const &b)
 
template<std::size_t N, typename T >
constexpr bool Utils::operator<= (Vector< T, N > const &a, Vector< T, N > const &b)
 
template<std::size_t N, typename T >
constexpr bool Utils::operator>= (Vector< T, N > const &a, Vector< T, N > const &b)
 
template<std::size_t N, typename T >
constexpr bool Utils::operator== (Vector< T, N > const &a, Vector< T, N > const &b)
 
template<std::size_t N, typename T >
constexpr bool Utils::operator!= (Vector< T, N > const &a, Vector< T, N > const &b)
 
template<std::size_t N, typename T , typename U >
auto Utils::operator+ (Vector< T, N > const &a, Vector< U, N > const &b)
 
template<std::size_t N, typename T >
Vector< T, N > & Utils::operator+= (Vector< T, N > &a, Vector< T, N > const &b)
 
template<std::size_t N, typename T , typename U >
auto Utils::operator- (Vector< T, N > const &a, Vector< U, N > const &b)
 
template<std::size_t N, typename T >
Vector< T, N > Utils::operator- (Vector< T, N > const &a)
 
template<std::size_t N, typename T >
Vector< T, N > & Utils::operator-= (Vector< T, N > &a, Vector< T, N > const &b)
 
template<std::size_t N, typename T , class U , std::enable_if_t< std::is_arithmetic_v< U >, bool > = true>
auto Utils::operator* (U const &a, Vector< T, N > const &b)
 
template<std::size_t N, typename T , class U , std::enable_if_t< std::is_arithmetic_v< U >, bool > = true>
auto Utils::operator* (Vector< T, N > const &b, U const &a)
 
template<std::size_t N, typename T >
Vector< T, N > & Utils::operator*= (Vector< T, N > &b, T const &a)
 
template<std::size_t N, typename T >
Vector< T, N > Utils::operator/ (Vector< T, N > const &a, T const &b)
 
template<std::size_t N, typename T >
Vector< T, N > Utils::operator/ (T const &a, Vector< T, N > const &b)
 
template<std::size_t N, typename T >
Vector< T, N > & Utils::operator/= (Vector< T, N > &a, T const &b)
 
template<std::size_t N, typename T , class U , class = std::enable_if_t<not(detail::is_vector<T>::value or detail::is_vector<U>::value)>>
auto Utils::operator* (Vector< T, N > const &a, Vector< U, N > const &b)
 
template<std::size_t N, typename T , class U , class = std::enable_if_t<std::is_integral_v<T> and std::is_integral_v<U>>>
auto Utils::operator% (Vector< T, N > const &a, Vector< U, N > const &b)
 
template<std::size_t N, typename T >
Vector< T, N > Utils::sqrt (Vector< T, N > const &a)
 
template<class T >
Vector< T, 3 > Utils::vector_product (Vector< T, 3 > const &a, Vector< T, 3 > const &b)
 
template<class T , std::size_t N>
Utils::product (Vector< T, N > const &v)
 
template<class T , class U , std::size_t N>
auto Utils::hadamard_product (Vector< T, N > const &a, Vector< U, N > const &b)
 
template<class T , class U , std::size_t N, class = std::enable_if_t<not(detail::is_vector<T>::value)>>
auto Utils::hadamard_product (T const &a, Vector< U, N > const &b)
 
template<class T , class U , std::size_t N, class = std::enable_if_t<not(detail::is_vector<U>::value)>>
auto Utils::hadamard_product (Vector< T, N > const &a, U const &b)
 
template<typename T , typename U , class = std::enable_if_t<not(detail::is_vector<T>::value or detail::is_vector<U>::value)>>
auto Utils::hadamard_product (T const &a, U const &b)
 
template<class T , class U , std::size_t N>
auto Utils::hadamard_division (Vector< T, N > const &a, Vector< U, N > const &b)
 
template<class T , class U , std::size_t N, class = std::enable_if_t<not(detail::is_vector<U>::value)>>
auto Utils::hadamard_division (Vector< T, N > const &a, U const &b)
 
template<class T , class U , std::size_t N, class = std::enable_if_t<not(detail::is_vector<T>::value)>>
auto Utils::hadamard_division (T const &a, Vector< U, N > const &b)
 
template<typename T , typename U , class = std::enable_if_t<not(detail::is_vector<T>::value or detail::is_vector<U>::value)>>
auto Utils::hadamard_division (T const &a, U const &b)
 
template<typename T >
Vector< T, 3 > Utils::unit_vector (unsigned int i)
 
template<std::size_t I, class T , std::size_t N>
auto Utils::get (Vector< T, N > const &a) -> std::enable_if_t<(I< N), const T & >
 

Detailed Description

Vector implementation and trait types for boost qvm interoperability.

Definition in file Vector.hpp.