aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Array
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2008-08-25 16:22:56 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2008-08-25 16:22:56 +0000
commit8f9d30cb201df0995764a37ea1c82d18185028cc (patch)
treeb82abb8ea4550b225e3ad7cafb41b9b5997383c7 /Eigen/src/Array
parent7ce70e143734942bf4e7dcfe5f5af957e5e5009e (diff)
* patch from Konstantinos Margaritis: bugfix in Altivec version of ei_pdiv
and various cleaning in Altivec code. Altivec vectorization have been re-enabled in CoreDeclaration * added copy constructors in non empty functors because I observed weird behavior with std::complex<>
Diffstat (limited to 'Eigen/src/Array')
-rw-r--r--Eigen/src/Array/Functors.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/Eigen/src/Array/Functors.h b/Eigen/src/Array/Functors.h
index 31bcca899..1e3804311 100644
--- a/Eigen/src/Array/Functors.h
+++ b/Eigen/src/Array/Functors.h
@@ -36,6 +36,8 @@
template<typename Scalar>
struct ei_scalar_add_op {
typedef typename ei_packet_traits<Scalar>::type PacketScalar;
+ // FIXME default copy constructors seems bugged with std::complex<>
+ inline ei_scalar_add_op(const ei_scalar_add_op& other) : m_other(other.m_other) { }
inline ei_scalar_add_op(const Scalar& other) : m_other(other) { }
inline Scalar operator() (const Scalar& a) const { return a + m_other; }
inline const PacketScalar packetOp(const PacketScalar& a) const
@@ -131,6 +133,8 @@ struct ei_functor_traits<ei_scalar_sin_op<Scalar> >
*/
template<typename Scalar>
struct ei_scalar_pow_op {
+ // FIXME default copy constructors seems bugged with std::complex<>
+ inline ei_scalar_pow_op(const ei_scalar_pow_op& other) : m_exponent(other.m_exponent) { }
inline ei_scalar_pow_op(const Scalar& exponent) : m_exponent(exponent) {}
inline Scalar operator() (const Scalar& a) const { return ei_pow(a, m_exponent); }
const Scalar m_exponent;