|
|
template<class T , size_type N, class T2 = std::remove_cv_t<T>> |
| constexpr Array< T, N > | celeritas::operator* (T2 const &y, Array< T, N > const &x) |
| | Left-multiply by scalar.
|
| |
|
template<class T , size_type N> |
| constexpr Array< T, N > | celeritas::operator- (Array< T, N > const &x) |
| | Unary negation.
|
| |
|
| template<class T , size_type N> |
| constexpr Array< T, N > & | celeritas::operator+= (Array< T, N > &x, Array< T, N > const &y) |
| |
| template<class T , size_type N, class T2 = std::remove_cv_t<T>> |
| constexpr Array< T, N > & | celeritas::operator+= (Array< T, N > &x, T2 const &y) |
| |
| template<class T , size_type N> |
| constexpr Array< T, N > & | celeritas::operator-= (Array< T, N > &x, Array< T, N > const &y) |
| |
| template<class T , size_type N, class T2 = std::remove_cv_t<T>> |
| constexpr Array< T, N > & | celeritas::operator-= (Array< T, N > &x, T2 const &y) |
| |
| template<class T , size_type N> |
| constexpr Array< T, N > & | celeritas::operator*= (Array< T, N > &x, Array< T, N > const &y) |
| |
| template<class T , size_type N, class T2 = std::remove_cv_t<T>> |
| constexpr Array< T, N > & | celeritas::operator*= (Array< T, N > &x, T2 const &y) |
| |
| template<class T , size_type N> |
| constexpr Array< T, N > & | celeritas::operator/= (Array< T, N > &x, Array< T, N > const &y) |
| |
| template<class T , size_type N, class T2 = std::remove_cv_t<T>> |
| constexpr Array< T, N > & | celeritas::operator/= (Array< T, N > &x, T2 const &y) |
| |
|
| template<class T , size_type N> |
| constexpr Array< T, N > | celeritas::operator+ (Array< T, N > const &x, Array< T, N > const &y) |
| |
| template<class T , size_type N, class T2 = std::remove_cv_t<T>> |
| constexpr Array< T, N > | celeritas::operator+ (Array< T, N > const &x, T2 const &y) |
| |
| template<class T , size_type N> |
| constexpr Array< T, N > | celeritas::operator- (Array< T, N > const &x, Array< T, N > const &y) |
| |
| template<class T , size_type N, class T2 = std::remove_cv_t<T>> |
| constexpr Array< T, N > | celeritas::operator- (Array< T, N > const &x, T2 const &y) |
| |
| template<class T , size_type N> |
| constexpr Array< T, N > | celeritas::operator* (Array< T, N > const &x, Array< T, N > const &y) |
| |
| template<class T , size_type N, class T2 = std::remove_cv_t<T>> |
| constexpr Array< T, N > | celeritas::operator* (Array< T, N > const &x, T2 const &y) |
| |
| template<class T , size_type N> |
| constexpr Array< T, N > | celeritas::operator/ (Array< T, N > const &x, Array< T, N > const &y) |
| |
| template<class T , size_type N, class T2 = std::remove_cv_t<T>> |
| constexpr Array< T, N > | celeritas::operator/ (Array< T, N > const &x, T2 const &y) |
| |
Mathematical operators for the Array type.
For performance reasons, avoid chaining these operators together: unroll arithmetic when possible. Note that all types must be consistent (unless promotion is automatically applied to scalar arguments), so you cannot multiply an array of doubles with an array of ints without explicitly converting first.