10#ifndef EIGEN_ASSIGNMENT_FUNCTORS_H
11#define EIGEN_ASSIGNMENT_FUNCTORS_H
21template<
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); }
34template<
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)); }
55template<
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)); }
76template<
typename DstScalar,
typename SrcScalar>
88template<
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)); }
98template<
typename DstScalar,
typename SrcScalar>
110template<
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)); }
119template<
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));
156template<
typename Scalar>
161 #if defined(EIGEN_VECTORIZE_AVX) && EIGEN_COMP_CLANG && (EIGEN_COMP_CLANG<800 || defined(__apple_build_version__))
Base class for all dense matrices, vectors, and expressions.
Definition MatrixBase.h:50
Namespace containing all symbols from the Eigen library.
Definition LDLT.h:16
NLOHMANN_BASIC_JSON_TPL_DECLARATION void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL &j1, nlohmann::NLOHMANN_BASIC_JSON_TPL &j2) noexcept(//NOLINT(readability-inconsistent-declaration-parameter-name, cert-dcl58-cpp) is_nothrow_move_constructible< nlohmann::NLOHMANN_BASIC_JSON_TPL >::value &&//NOLINT(misc-redundant-expression) is_nothrow_move_assignable< nlohmann::NLOHMANN_BASIC_JSON_TPL >::value)
exchanges the values of two JSON objects
Definition json.hpp:24418
Holds information about the various numeric (i.e.
Definition NumTraits.h:236
Definition AssignmentFunctors.h:46
Definition AssignmentFunctors.h:21
Definition AssignmentFunctors.h:110
Definition XprHelper.h:176
Definition AssignmentFunctors.h:89
Definition GenericPacketMath.h:107
Definition AssignmentFunctors.h:67
Definition AssignmentFunctors.h:142
Definition PacketMath.h:47