aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-06-28 17:15:16 +0000
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-06-28 17:15:16 +0000
commit55e08f7102f86e7deac8d9430658b3010fc578bb (patch)
tree482ef998f6f2e90529dad2fa1671d0797385b3d1
parent844f69e4a9d0dad5ff49330ddf137ba38e956dc9 (diff)
fix breakage from my last commit
-rw-r--r--Eigen/src/Core/DummyPacketMath.h46
1 files changed, 24 insertions, 22 deletions
diff --git a/Eigen/src/Core/DummyPacketMath.h b/Eigen/src/Core/DummyPacketMath.h
index 6a35a232c..1b3bae34f 100644
--- a/Eigen/src/Core/DummyPacketMath.h
+++ b/Eigen/src/Core/DummyPacketMath.h
@@ -31,63 +31,65 @@
// called, TODO so sould we raise an assertion or not ?
/** \internal \returns a + b (coeff-wise) */
template <typename Packet> inline Packet
-ei_padd(const Packet&,
- const Packet&) { Packet ret; return ret; }
+ei_padd(const Packet& a,
+ const Packet& b) { return a+b; }
/** \internal \returns a - b (coeff-wise) */
template <typename Packet> inline Packet
-ei_psub(const Packet&,
- const Packet&) { Packet ret; return ret; }
+ei_psub(const Packet& a,
+ const Packet& b) { return a-b; }
/** \internal \returns a * b (coeff-wise) */
template <typename Packet> inline Packet
-ei_pmul(const Packet&,
- const Packet&) { Packet ret; return ret; }
+ei_pmul(const Packet& a,
+ const Packet& b) { return a*b; }
/** \internal \returns a / b (coeff-wise) */
template <typename Packet> inline Packet
-ei_pdiv(const Packet&,
- const Packet&) { Packet ret; return ret; }
+ei_pdiv(const Packet& a,
+ const Packet& b) { return a/b; }
/** \internal \returns the min of \a a and \a b (coeff-wise) */
template <typename Packet> inline Packet
-ei_pmin(const Packet&,
- const Packet&) { Packet ret; return ret; }
+ei_pmin(const Packet& a,
+ const Packet& b) { return std::min(a, b); }
/** \internal \returns the max of \a a and \a b (coeff-wise) */
template <typename Packet> inline Packet
-ei_pmax(const Packet&,
- const Packet&) { Packet ret; return ret; }
+ei_pmax(const Packet& a,
+ const Packet& b) { return std::max(a, b); }
/** \internal \returns a packet version of \a *from, from must be 16 bytes aligned */
template <typename Scalar> inline typename ei_packet_traits<Scalar>::type
-ei_pload(const Scalar*) { typename ei_packet_traits<Scalar>::type ret; return ret; }
+ei_pload(const Scalar* from) { return *from; }
/** \internal \returns a packet version of \a *from, (un-aligned load) */
template <typename Scalar> inline typename ei_packet_traits<Scalar>::type
-ei_ploadu(const Scalar*) { typename ei_packet_traits<Scalar>::type ret; return ret; }
+ei_ploadu(const Scalar* from) { return *from; }
/** \internal \returns a packet with constant coefficients \a a, e.g.: (a,a,a,a) */
template <typename Scalar> inline typename ei_packet_traits<Scalar>::type
-ei_pset1(const Scalar&) { typename ei_packet_traits<Scalar>::type ret; return ret; }
+ei_pset1(const Scalar& a) { return a; }
/** \internal copy the packet \a from to \a *to, \a to must be 16 bytes aligned */
-template <typename Scalar, typename Packet> inline void ei_pstore(Scalar*, const Packet&) {}
+template <typename Scalar, typename Packet> inline void ei_pstore(Scalar* to, const Packet& from)
+{ (*to) = from; }
/** \internal copy the packet \a from to \a *to, (un-aligned store) */
-template <typename Scalar, typename Packet> inline void ei_pstoreu(Scalar*, const Packet&) {}
+template <typename Scalar, typename Packet> inline void ei_pstoreu(Scalar* to, const Packet& from)
+{ (*to) = from; }
/** \internal \returns the first element of a packet */
-template <typename Packet> inline typename ei_unpacket_traits<Packet>::type ei_pfirst(const Packet&)
-{ typename ei_unpacket_traits<Packet>::type ret; return ret; }
+template <typename Packet> inline typename ei_unpacket_traits<Packet>::type ei_pfirst(const Packet& a)
+{ return a; }
/** \internal \returns a packet where the element i contains the sum of the packet of \a vec[i] */
template <typename Packet> inline Packet
-ei_preduxp(const Packet*) { Packet ret; return ret; }
+ei_preduxp(const Packet* vecs) { return vecs[0]; }
/** \internal \returns the sum of the elements of \a a*/
-template <typename Packet> inline typename ei_unpacket_traits<Packet>::type ei_predux(const Packet&)
-{ typename ei_unpacket_traits<Packet>::type ret; return ret; }
+template <typename Packet> inline typename ei_unpacket_traits<Packet>::type ei_predux(const Packet& a)
+{ return a; }
////////////