From f99b04bd2947f79bfe5f7212f2ed1ad624bffd5a Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Wed, 4 Feb 2015 15:20:03 +0100 Subject: [PATCH] allow contraction of tensors of different base type --- include/deal.II/base/tensor.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/include/deal.II/base/tensor.h b/include/deal.II/base/tensor.h index cabc4643fe..c0a24c9099 100644 --- a/include/deal.II/base/tensor.h +++ b/include/deal.II/base/tensor.h @@ -761,12 +761,13 @@ std::ostream &operator << (std::ostream &out, const Tensor &p) * @relates Tensor * @author Guido Kanschat, 2000 */ -template +template inline -Number contract (const Tensor<1,dim,Number> &src1, - const Tensor<1,dim,Number> &src2) +typename ProductType::type +contract (const Tensor<1,dim,Number> &src1, + const Tensor<1,dim,OtherNumber> &src2) { - Number res = 0.; + typename ProductType::type res = typename ProductType::type(); for (unsigned int i=0; i &src1, * @relates Tensor * @author Wolfgang Bangerth, 2005 */ -template +template inline -Number +typename ProductType::type operator * (const Tensor<1,dim,Number> &src1, - const Tensor<1,dim,Number> &src2) + const Tensor<1,dim,OtherNumber> &src2) { return contract(src1, src2); } -- 2.39.5