Manifold 3.0
Robust geometry
 
Loading...
Searching...
No Matches
Binary_ops

Binary operators are defined component-wise for linalg types, EXCEPT for operator *, which does standard matrix multiplication, scalar multiplication, and component-wise multiplication for same-size vectors. Use cmul for the matrix Hadamard product. More...

Functions

template<class A , class B >
constexpr apply_t< detail::op_add, A, B > operator+ (const A &a, const B &b)
 
template<class A , class B >
constexpr apply_t< detail::op_sub, A, B > operator- (const A &a, const B &b)
 
template<class A , class B >
constexpr apply_t< detail::op_mul, A, B > cmul (const A &a, const B &b)
 
template<class A , class B >
constexpr apply_t< detail::op_div, A, B > operator/ (const A &a, const B &b)
 
template<class A , class B >
constexpr apply_t< detail::op_mod, A, B > operator% (const A &a, const B &b)
 
template<class A , class B >
constexpr apply_t< detail::op_un, A, B > operator| (const A &a, const B &b)
 
template<class A , class B >
constexpr apply_t< detail::op_xor, A, B > operator^ (const A &a, const B &b)
 
template<class A , class B >
constexpr apply_t< detail::op_int, A, B > operator& (const A &a, const B &b)
 
template<class A , class B >
constexpr apply_t< detail::op_lsh, A, B > operator<< (const A &a, const B &b)
 
template<class A , class B >
constexpr apply_t< detail::op_rsh, A, B > operator>> (const A &a, const B &b)
 
template<class A , class B >
constexpr auto operator* (const A &a, const B &b)
 
template<class A , class B >
constexpr auto operator+= (A &a, const B &b) -> decltype(a=a+b)
 
template<class A , class B >
constexpr auto operator-= (A &a, const B &b) -> decltype(a=a - b)
 
template<class A , class B >
constexpr auto operator*= (A &a, const B &b) -> decltype(a=a *b)
 
template<class A , class B >
constexpr auto operator/= (A &a, const B &b) -> decltype(a=a/b)
 
template<class A , class B >
constexpr auto operator%= (A &a, const B &b) -> decltype(a=a % b)
 
template<class A , class B >
constexpr auto operator|= (A &a, const B &b) -> decltype(a=a|b)
 
template<class A , class B >
constexpr auto operator^= (A &a, const B &b) -> decltype(a=a ^ b)
 
template<class A , class B >
constexpr auto operator&= (A &a, const B &b) -> decltype(a=a &b)
 
template<class A , class B >
constexpr auto operator<<= (A &a, const B &b) -> decltype(a=a<< b)
 
template<class A , class B >
constexpr auto operator>>= (A &a, const B &b) -> decltype(a=a > > b)
 

Detailed Description

Binary operators are defined component-wise for linalg types, EXCEPT for operator *, which does standard matrix multiplication, scalar multiplication, and component-wise multiplication for same-size vectors. Use cmul for the matrix Hadamard product.