dot-xx
A personal collection of small C++ modules
Loading...
Searching...
No Matches
dxx::math::vector_operators Namespace Reference

Operations on vectors. Read the description. More...

Functions

template<vector U, vector_like< U > V>
constexpr std::remove_cvref_t< U > operator+ (U &&u, V &&v)
 Operator for a corrsponding add overload.
template<mut_vector U, vector_like< U > V>
constexpr U & operator+= (U &u, const V &v)
 Inplace element-wise vector addition.
template<vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr std::remove_cvref_t< U > operator+ (U &&u, const Scalar &scalar)
 Operator for a corrsponding add overload.
template<mut_vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr U & operator+= (U &u, const Scalar &scalar)
 Inplace element-wise addition of vector with scalar.
template<vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr std::remove_cvref_t< U > operator+ (const Scalar &scalar, U &&u)
 Operator for a corrsponding add overload.
template<vector U, vector_like< U > V>
constexpr std::remove_cvref_t< U > operator- (U &&u, V &&v)
 Operator for a corrsponding sub overload.
template<mut_vector U, vector_like< U > V>
constexpr U & operator-= (U &u, const V &v)
 Inplace element-wise vector subtraction.
template<vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr std::remove_cvref_t< U > operator- (U &&u, const Scalar &scalar)
 Operator for a corrsponding sub overload.
template<mut_vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr U & operator-= (U &u, const Scalar &scalar)
 Inplace element-wise subtraction of vector with scalar.
template<vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr std::remove_cvref_t< U > operator- (const Scalar &scalar, U &&u)
 Operator for a corrsponding sub overload.
template<vector U, vector_like< U > V>
constexpr std::remove_cvref_t< U > operator* (U &&u, V &&v)
 Operator for a corrsponding mul overload.
template<mut_vector U, vector_like< U > V>
constexpr U & operator*= (U &u, const V &v)
 Inplace element-wise vector multiplication.
template<vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr std::remove_cvref_t< U > operator* (U &&u, const Scalar &scalar)
 Operator for a corrsponding mul overload.
template<mut_vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr U & operator*= (U &u, const Scalar &scalar)
 Inplace element-wise multiplication of vector with scalar.
template<vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr std::remove_cvref_t< U > operator* (const Scalar &scalar, U &&u)
 Operator for a corrsponding mul overload.
template<vector U, vector_like< U > V>
constexpr std::remove_cvref_t< U > operator/ (U &&u, V &&v)
 Operator for a corrsponding div overload.
template<mut_vector U, vector_like< U > V>
constexpr U & operator/= (U &u, const V &v)
 Inplace element-wise vector division.
template<vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr std::remove_cvref_t< U > operator/ (U &&u, const Scalar &scalar)
 Operator for a corrsponding div overload.
template<mut_vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr U & operator/= (U &u, const Scalar &scalar)
 Inplace element-wise division of vector with scalar.
template<vector U, std::convertible_to< RealOf< U > > Scalar>
constexpr std::remove_cvref_t< U > operator/ (const Scalar &scalar, U &&u)
 Operator for a corrsponding div overload.
template<vector U>
constexpr std::remove_cvref_t< U > operator- (U &&u)
 Unary negation for vectors.

Detailed Description

Operations on vectors. Read the description.

Operations defined: +(add)/-(sub)/*(mul)//(div), the following variations are supported (example for +/add, for others it's practically the same) for corresponding vector types:

void add(&&u, &&v, &out); // Result via out-parameter
Out add<Out>(&&u, &&v); // Result via return-value of specified type
U add(&&u, &&v); // Result via return-value that is deduced
// automatically
void add(&&u, scalar, &out);
Out add<Out>(&&u, scalar);
U add(&&u, scalar);
void add(scalar, &&u, &out);
Out add<Out>(scalar, &&u);
U add(scalar, &&u);
namespace vector_operators {
U operator+(&&u, &&v);
U operator+(&&u, scalar);
U operator+(scalar, &&u);
} // <-- namespace vector_operators
Operations on vectors. Read the description.
Definition basic_ops.xx:220
constexpr std::remove_cvref_t< U > operator+(U &&u, V &&v)
Operator for a corrsponding add overload.
Definition basic_ops.xx:220
constexpr void add(U &&u, V &&v, Out &out)
Element-wise vector addition. Result via output parameter.
Definition basic_ops.xx:220