10 #ifndef EIGEN_ASSIGNMENT_FUNCTORS_H 11 #define EIGEN_ASSIGNMENT_FUNCTORS_H 21 template<
typename DstScalar,
typename SrcScalar>
struct assign_op {
24 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
void assignCoeff(DstScalar& a,
const SrcScalar& b)
const { a = b; }
26 template<
int Alignment,
typename Packet>
27 EIGEN_STRONG_INLINE
void assignPacket(DstScalar* a,
const Packet& b)
const 28 { internal::pstoret<DstScalar,Packet,Alignment>(a,b); }
32 template<
typename DstScalar>
struct assign_op<DstScalar,void> {};
34 template<
typename DstScalar,
typename SrcScalar>
49 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
void assignCoeff(DstScalar& a,
const SrcScalar& b)
const { a += b; }
51 template<
int Alignment,
typename Packet>
52 EIGEN_STRONG_INLINE
void assignPacket(DstScalar* a,
const Packet& b)
const 53 { internal::pstoret<DstScalar,Packet,Alignment>(a,internal::padd(internal::ploadt<Packet,Alignment>(a),b)); }
55 template<
typename DstScalar,
typename SrcScalar>
70 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
void assignCoeff(DstScalar& a,
const SrcScalar& b)
const { a -= b; }
72 template<
int Alignment,
typename Packet>
73 EIGEN_STRONG_INLINE
void assignPacket(DstScalar* a,
const Packet& b)
const 74 { internal::pstoret<DstScalar,Packet,Alignment>(a,internal::psub(internal::ploadt<Packet,Alignment>(a),b)); }
76 template<
typename DstScalar,
typename SrcScalar>
88 template<
typename DstScalar,
typename SrcScalar=DstScalar>
92 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
void assignCoeff(DstScalar& a,
const SrcScalar& b)
const { a *= b; }
94 template<
int Alignment,
typename Packet>
95 EIGEN_STRONG_INLINE
void assignPacket(DstScalar* a,
const Packet& b)
const 96 { internal::pstoret<DstScalar,Packet,Alignment>(a,internal::pmul(internal::ploadt<Packet,Alignment>(a),b)); }
98 template<
typename DstScalar,
typename SrcScalar>
110 template<
typename DstScalar,
typename SrcScalar=DstScalar>
struct div_assign_op {
113 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
void assignCoeff(DstScalar& a,
const SrcScalar& b)
const { a /= b; }
115 template<
int Alignment,
typename Packet>
116 EIGEN_STRONG_INLINE
void assignPacket(DstScalar* a,
const Packet& b)
const 117 { internal::pstoret<DstScalar,Packet,Alignment>(a,internal::pdiv(internal::ploadt<Packet,Alignment>(a),b)); }
119 template<
typename DstScalar,
typename SrcScalar>
145 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
void assignCoeff(Scalar& a,
const Scalar& b)
const 149 Scalar t=b;
const_cast<Scalar&
>(b)=a; a=t;
152 swap(a,const_cast<Scalar&>(b));
156 template<
typename Scalar>
168 #endif // EIGEN_ASSIGNMENT_FUNCTORS_H Definition: AssignmentFunctors.h:89
Definition: AssignmentFunctors.h:67
Definition: AssignmentFunctors.h:142
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:85
Holds information about the various numeric (i.e.
Definition: NumTraits.h:150
Definition: AssignmentFunctors.h:21
Definition: GenericPacketMath.h:96
Definition: PacketMath.h:48
Definition: BandTriangularSolver.h:13
Definition: XprHelper.h:146
Definition: AssignmentFunctors.h:110
Definition: AssignmentFunctors.h:46