|
|
template<mut_vector Out, vector_like< Out > U, vector_like< Out > V> |
| constexpr void | add (U &&u, V &&v, Out &out) |
| | Element-wise vector addition. Result via output parameter.
|
|
template<container_traits::returnable Out, vector_like< Out > U, vector_like< Out > V> |
| constexpr Out | add (U &&u, V &&v) |
| | Element-wise vector addition. Result in return value of a user-provided type.
|
|
template<vector U, vector_like< U > V> |
| constexpr std::remove_cvref_t< U > | add (U &&u, V &&v) |
| | Element-wise vector addition. Result in return value of automatically selected type.
|
|
template<mut_vector Out, vector_like< Out > U, std::convertible_to< RealOf< Out > > Scalar> |
| constexpr void | add (U &&u, const Scalar &scalar, Out &out) |
| | Element-wise addition of vector elements with a scalar. Result via output parameter.
|
|
template<container_traits::returnable Out, vector_like< Out > U, std::convertible_to< RealOf< Out > > Scalar> |
| constexpr Out | add (U &&u, const Scalar &scalar) |
| | Element-wise addition of vector elements with a scalar. Result in return value of a user-provided type.
|
|
template<vector U, std::convertible_to< RealOf< U > > Scalar> |
| constexpr std::remove_cvref_t< U > | add (U &&u, const Scalar &scalar) |
| | Element-wise addition of vector elements with a scalar. Result in return value of automatically selected type.
|
|
template<mut_vector Out, std::convertible_to< RealOf< Out > > Scalar, vector_like< Out > U> |
| constexpr void | add (const Scalar &scalar, U &&u, Out &out) |
| | Element-wise addition of scalar with vector elements. Result via output parameter.
|
|
template<container_traits::returnable Out, std::convertible_to< RealOf< Out > > Scalar, vector_like< Out > U> |
| constexpr Out | add (const Scalar &scalar, U &&u) |
| | Element-wise addition of scalar with vector elements. Result in return value of a user-provided type.
|
|
template<vector U, std::convertible_to< RealOf< U > > Scalar> |
| constexpr std::remove_cvref_t< U > | add (const Scalar &scalar, U &&u) |
| | Element-wise addition of vector elements with a scalar. Result in return value of automatically selected type.
|
|
template<mut_vector Out, vector_like< Out > U, vector_like< Out > V> |
| constexpr void | sub (U &&u, V &&v, Out &out) |
| | Element-wise vector subtraction. Result via output parameter.
|
|
template<container_traits::returnable Out, vector_like< Out > U, vector_like< Out > V> |
| constexpr Out | sub (U &&u, V &&v) |
| | Element-wise vector subtraction. Result in return value of a user-provided type.
|
|
template<vector U, vector_like< U > V> |
| constexpr std::remove_cvref_t< U > | sub (U &&u, V &&v) |
| | Element-wise vector subtraction. Result in return value of automatically selected type.
|
|
template<mut_vector Out, vector_like< Out > U, std::convertible_to< RealOf< Out > > Scalar> |
| constexpr void | sub (U &&u, const Scalar &scalar, Out &out) |
| | Element-wise subtraction of vector elements with a scalar. Result via output parameter.
|
|
template<container_traits::returnable Out, vector_like< Out > U, std::convertible_to< RealOf< Out > > Scalar> |
| constexpr Out | sub (U &&u, const Scalar &scalar) |
| | Element-wise subtraction of vector elements with a scalar. Result in return value of a user-provided type.
|
|
template<vector U, std::convertible_to< RealOf< U > > Scalar> |
| constexpr std::remove_cvref_t< U > | sub (U &&u, const Scalar &scalar) |
| | Element-wise subtraction of vector elements with a scalar. Result in return value of automatically selected type.
|
|
template<mut_vector Out, std::convertible_to< RealOf< Out > > Scalar, vector_like< Out > U> |
| constexpr void | sub (const Scalar &scalar, U &&u, Out &out) |
| | Element-wise subtraction of scalar with vector elements. Result via output parameter.
|
|
template<container_traits::returnable Out, std::convertible_to< RealOf< Out > > Scalar, vector_like< Out > U> |
| constexpr Out | sub (const Scalar &scalar, U &&u) |
| | Element-wise subtraction of scalar with vector elements. Result in return value of a user-provided type.
|
|
template<vector U, std::convertible_to< RealOf< U > > Scalar> |
| constexpr std::remove_cvref_t< U > | sub (const Scalar &scalar, U &&u) |
| | Element-wise subtraction of vector elements with a scalar. Result in return value of automatically selected type.
|
|
template<mut_vector Out, vector_like< Out > U, vector_like< Out > V> |
| constexpr void | mul (U &&u, V &&v, Out &out) |
| | Element-wise vector multiplication. Result via output parameter.
|
|
template<container_traits::returnable Out, vector_like< Out > U, vector_like< Out > V> |
| constexpr Out | mul (U &&u, V &&v) |
| | Element-wise vector multiplication. Result in return value of a user-provided type.
|
|
template<vector U, vector_like< U > V> |
| constexpr std::remove_cvref_t< U > | mul (U &&u, V &&v) |
| | Element-wise vector multiplication. Result in return value of automatically selected type.
|
|
template<mut_vector Out, vector_like< Out > U, std::convertible_to< RealOf< Out > > Scalar> |
| constexpr void | mul (U &&u, const Scalar &scalar, Out &out) |
| | Element-wise multiplication of vector elements with a scalar. Result via output parameter.
|
|
template<container_traits::returnable Out, vector_like< Out > U, std::convertible_to< RealOf< Out > > Scalar> |
| constexpr Out | mul (U &&u, const Scalar &scalar) |
| | Element-wise multiplication of vector elements with a scalar. Result in return value of a user-provided type.
|
|
template<vector U, std::convertible_to< RealOf< U > > Scalar> |
| constexpr std::remove_cvref_t< U > | mul (U &&u, const Scalar &scalar) |
| | Element-wise multiplication of vector elements with a scalar. Result in return value of automatically selected type.
|
|
template<mut_vector Out, std::convertible_to< RealOf< Out > > Scalar, vector_like< Out > U> |
| constexpr void | mul (const Scalar &scalar, U &&u, Out &out) |
| | Element-wise multiplication of scalar with vector elements. Result via output parameter.
|
|
template<container_traits::returnable Out, std::convertible_to< RealOf< Out > > Scalar, vector_like< Out > U> |
| constexpr Out | mul (const Scalar &scalar, U &&u) |
| | Element-wise multiplication of scalar with vector elements. Result in return value of a user-provided type.
|
|
template<vector U, std::convertible_to< RealOf< U > > Scalar> |
| constexpr std::remove_cvref_t< U > | mul (const Scalar &scalar, U &&u) |
| | Element-wise multiplication of vector elements with a scalar. Result in return value of automatically selected type.
|
|
template<mut_vector Out, vector_like< Out > U, vector_like< Out > V> |
| constexpr void | div (U &&u, V &&v, Out &out) |
| | Element-wise vector division. Result via output parameter.
|
|
template<container_traits::returnable Out, vector_like< Out > U, vector_like< Out > V> |
| constexpr Out | div (U &&u, V &&v) |
| | Element-wise vector division. Result in return value of a user-provided type.
|
|
template<vector U, vector_like< U > V> |
| constexpr std::remove_cvref_t< U > | div (U &&u, V &&v) |
| | Element-wise vector division. Result in return value of automatically selected type.
|
|
template<mut_vector Out, vector_like< Out > U, std::convertible_to< RealOf< Out > > Scalar> |
| constexpr void | div (U &&u, const Scalar &scalar, Out &out) |
| | Element-wise division of vector elements with a scalar. Result via output parameter.
|
|
template<container_traits::returnable Out, vector_like< Out > U, std::convertible_to< RealOf< Out > > Scalar> |
| constexpr Out | div (U &&u, const Scalar &scalar) |
| | Element-wise division of vector elements with a scalar. Result in return value of a user-provided type.
|
|
template<vector U, std::convertible_to< RealOf< U > > Scalar> |
| constexpr std::remove_cvref_t< U > | div (U &&u, const Scalar &scalar) |
| | Element-wise division of vector elements with a scalar. Result in return value of automatically selected type.
|
|
template<mut_vector Out, std::convertible_to< RealOf< Out > > Scalar, vector_like< Out > U> |
| constexpr void | div (const Scalar &scalar, U &&u, Out &out) |
| | Element-wise division of scalar with vector elements. Result via output parameter.
|
|
template<container_traits::returnable Out, std::convertible_to< RealOf< Out > > Scalar, vector_like< Out > U> |
| constexpr Out | div (const Scalar &scalar, U &&u) |
| | Element-wise division of scalar with vector elements. Result in return value of a user-provided type.
|
|
template<vector U, std::convertible_to< RealOf< U > > Scalar> |
| constexpr std::remove_cvref_t< U > | div (const Scalar &scalar, U &&u) |
| | Element-wise division of vector elements with a scalar. Result in return value of automatically selected type.
|
|
template<mut_vector Out, vector_like< Out > U, vector_like< Out > V> |
| void | cross (const U &u, const V &v, Out &out) |
| | Cross product of two 3D vectors (via out parameter).
|
|
template<container_traits::returnable Out, vector_like< Out > U, vector_like< Out > V> |
| constexpr Out | cross (const U &u, const V &v) |
| | Cross product of two 3D vectors (via return value).
|
|
template<container_traits::returnable U, vector_like< U > V> |
| constexpr U | cross (const U &u, const V &v) |
| | Cross product of two 3D vectors (via return value of default type).
|
|
template<vector U, vector_like< U > V> |
| constexpr RealOf< U > | dot (const U &u, const V &v) |
| | Vector dot product.
|
|
template<Norm t_norm = norms::euclidean, vector V> |
| constexpr RealOf< V > | norm (const V &v) |
| | Calculates norm t_norm for vector v.
|
|
template<Norm t_norm = norms::euclidean, vector V> |
| constexpr RealOf< V > | sq_norm (const V &v) |
| | Calculates the square of the norm t_norm for vector v.
|
|
template<Norm t_norm = norms::euclidean, vector V, vector_like< V > U> |
| constexpr RealOf< V > | dist (const V &v, const U &u) |
| | Calculates the distance between vector v and u according to norm t_norm.
|
|
template<Norm t_norm = norms::euclidean, vector V, vector_like< V > U> |
| constexpr RealOf< V > | sq_dist (const V &v, const U &u) |
| | Calculates the square of the distance between vector v and u according to norm t_norm.
|
| template<typename T, typename Compare = std::less<T>, typename Diff = Sub> |
| constexpr T | abs_diff (const T &a, const T &b, Compare comp={}, Diff diff={}) |
| | Underflow-safe absolute difference between two numbers.
|
|
template<typename T, typename Less = std::less<T>> |
| constexpr Sign | sign (T t, Less less={}, T zero={}) |
| | Gets the sign of a number.
|