template class Operator<TYPE<SCALAR>>; \
template TYPE<SCALAR>
operator*(
const SCALAR &lhs,
const Operator<TYPE<SCALAR>> &rhs); \
template TYPE<SCALAR>
operator*(
const Operator<TYPE<SCALAR>> &lhs,
const SCALAR &rhs); \
template TYPE<SCALAR>
operator/(
const Operator<TYPE<SCALAR>> &lhs,
const SCALAR &rhs); \
template TYPE<SCALAR> &
operator+=(Operator<TYPE<SCALAR>> &lhs, \
const Operator<TYPE<SCALAR>> &rhs); \
template TYPE<SCALAR> &
operator-=(Operator<TYPE<SCALAR>> &lhs, \
const Operator<TYPE<SCALAR>> &rhs); \
template TYPE<SCALAR>
operator+(
const Operator<TYPE<SCALAR>> &lhs, \
const Operator<TYPE<SCALAR>> &rhs); \
template TYPE<SCALAR>
operator-(
const Operator<TYPE<SCALAR>> &lhs, \
const Operator<TYPE<SCALAR>> &rhs);
Derived operator+(const Operator< Derived > &lhs, const Operator< Derived > &rhs)
Derived & operator-=(Operator< Derived > &lhs, const Operator< Derived > &rhs)
Derived operator*(const typename Operator< Derived >::scalar_t &lhs, const Operator< Derived > &rhs)
Derived & operator+=(Operator< Derived > &lhs, const Operator< Derived > &rhs)
Derived operator/(const Operator< Derived > &lhs, const typename Operator< Derived >::scalar_t &rhs)
Derived operator-(const Operator< Derived > &lhs, const Operator< Derived > &rhs)