* multiplies @p object with it.
*
* @relates Tensor<0,dim,Number>
- * @relates EnableIfScalar
+ * @relates ProductType
*/
template <int dim, typename Number, typename Other>
inline
* multiplies @p object with it.
*
* @relates Tensor<0,dim,Number>
- * @relates EnableIfScalar
+ * @relates ProductType
*/
template <int dim, typename Number, typename Other>
inline
* It returns an unwrapped number of product type.
*
* @relates Tensor<0,dim,Number>
+ * @relates ProductType
*/
template <int dim, typename Number, typename OtherNumber>
inline
-typename ProductType<Number, OtherNumber>::type // FIXME: TEST!
+typename ProductType<Number, OtherNumber>::type
operator * (const Tensor<0, dim, Number> &src1,
const Tensor<0, dim, OtherNumber> &src2)
{
*
* @relates Tensor<0,dim,Number>
* @relates EnableIfScalar
+ * @relates ProductType
*/
template <int dim, typename Number, typename OtherNumber>
inline
* Add two tensors of rank 0.
*
* @relates Tensor<0,dim,Number>
+ * @relates ProductType
*/
template <int dim, typename Number, typename OtherNumber>
inline
* Subtract two tensors of rank 0.
*
* @relates Tensor<0,dim,Number>
+ * @relates ProductType
*/
template <int dim, typename Number, typename OtherNumber>
inline
* right.
*
* Only multiplication with a scalar number type (i.e., a floating point
- * number, a complex floating point number, etc.), see the documentation of
- * EnableIfScalar for details.
+ * number, a complex floating point number, etc.) is allowed, see the
+ * documentation of EnableIfScalar for details.
*
* @relates Tensor
* @relates EnableIfScalar
+ * @relates ProductType
*/
template <int rank, int dim,
typename Number,
/**
* Multiplication of a tensor of general rank with a scalar number from the
- * left. See the discussion with the operator with switched arguments for more
- * information about template arguments and the return type.
+ * left.
+ *
+ * Only multiplication with a scalar number type (i.e., a floating point
+ * number, a complex floating point number, etc.) is allowed, see the
+ * documentation of EnableIfScalar for details.
*
* @relates Tensor
* @relates EnableIfScalar
+ * @relates ProductType
*/
template <int rank, int dim,
typename Number,
*
* @relates Tensor
* @relates EnableIfScalar
+ * @relates ProductType
*/
template <int rank, int dim,
typename Number,
* Addition of two tensors of general @tparam rank.
*
* @relates Tensor
+ * @relates ProductType
*/
template <int rank, int dim, typename Number, typename OtherNumber>
inline
* Subtraction of two tensors of general @tparam rank.
*
* @relates Tensor
+ * @relates ProductType
*/
template <int rank, int dim, typename Number, typename OtherNumber>
inline
* \text{result}_{i_1,..,i_{r1},j_1,..,j_{r2}}
* = \sum_{k}
* \text{left}_{i_1,..,i_{r1}, k}
- * \text{right}_{j_1,..,j_{r2}, k}
+ * \text{right}_{k, j_1,..,j_{r2}}
* @f]
*
- * @note For the <tt>Tensor</tt> class, the multiplication operator only
- * performs a contraction over a single pair of indices. This is in
- * contrast to the multiplication operator for symmetric tensors, which
- * does the double contraction.
+ * @note For the Tensor class, the multiplication operator only performs a
+ * contraction over a single pair of indices. This is in contrast to the
+ * multiplication operator for SymmetricTensor, which does the double
+ * contraction.
*
* @note In case the contraction yields tensor of rank 0 the scalar
- * number is returned as an unwrapped number type
+ * number is returned as an unwrapped number type.
*
* @relates Tensor
+ * @relates ProductType
*/
template <int rank_1, int rank_2, int dim,
typename Number, typename OtherNumber,