diff options
author | Gael Guennebaud <g.gael@free.fr> | 2016-09-21 17:26:04 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2016-09-21 17:26:04 +0200 |
commit | ac5377e16186c35ae1609245838825c07d0aa79f (patch) | |
tree | ac4ed984177a605293a278afe9852f7be1e859d9 /Eigen/src/Core/util/XprHelper.h | |
parent | 5269d11935b4169647d0a410c026728fa6f3708f (diff) |
Improve cost estimation of complex division
Diffstat (limited to 'Eigen/src/Core/util/XprHelper.h')
-rw-r--r-- | Eigen/src/Core/util/XprHelper.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Eigen/src/Core/util/XprHelper.h b/Eigen/src/Core/util/XprHelper.h index fa60008ef..088a65240 100644 --- a/Eigen/src/Core/util/XprHelper.h +++ b/Eigen/src/Core/util/XprHelper.h @@ -671,6 +671,14 @@ struct scalar_div_cost { enum { value = 8*NumTraits<T>::MulCost }; }; +template<typename T,bool Vectorized> +struct scalar_div_cost<std::complex<T>, Vectorized> { + enum { value = 2*scalar_div_cost<T>::value + + 6*NumTraits<T>::MulCost + + 3*NumTraits<T>::AddCost + }; +}; + template<bool Vectorized> struct scalar_div_cost<signed long,Vectorized,typename conditional<sizeof(long)==8,void,false_type>::type> { enum { value = 24 }; }; |