6 template<
typename OtherDerived>
18 template<
typename OtherDerived>
20 EIGEN_STRONG_INLINE
const CwiseBinaryOp<internal::scalar_quotient_op<Scalar,typename OtherDerived::Scalar>,
const Derived,
const OtherDerived>
21 operator/(
const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other)
const
23 return CwiseBinaryOp<internal::scalar_quotient_op<Scalar,typename OtherDerived::Scalar>,
const Derived,
const OtherDerived>(derived(), other.derived());
33 template <
int NaNPropagation=PropagateFast,
typename OtherDerived>
35 EIGEN_STRONG_INLINE
const CwiseBinaryOp<internal::scalar_min_op<Scalar,Scalar,NaNPropagation>,
const Derived,
const OtherDerived>
36 #ifdef EIGEN_PARSED_BY_DOXYGEN
41 (
const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other)
const
43 return CwiseBinaryOp<internal::scalar_min_op<Scalar,Scalar,NaNPropagation>,
const Derived,
const OtherDerived>(derived(), other.derived());
50 template <
int NaNPropagation=PropagateFast>
52 EIGEN_STRONG_INLINE
const CwiseBinaryOp<internal::scalar_min_op<Scalar,Scalar,NaNPropagation>,
const Derived,
53 const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
54 #ifdef EIGEN_PARSED_BY_DOXYGEN
59 (
const Scalar &other)
const
61 return (min<NaNPropagation>)(Derived::PlainObject::Constant(
rows(),
cols(), other));
71 template <
int NaNPropagation=PropagateFast,
typename OtherDerived>
73 EIGEN_STRONG_INLINE
const CwiseBinaryOp<internal::scalar_max_op<Scalar,Scalar,NaNPropagation>,
const Derived,
const OtherDerived>
74 #ifdef EIGEN_PARSED_BY_DOXYGEN
79 (
const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other)
const
81 return CwiseBinaryOp<internal::scalar_max_op<Scalar,Scalar,NaNPropagation>,
const Derived,
const OtherDerived>(derived(), other.derived());
88 template <
int NaNPropagation=PropagateFast>
90 EIGEN_STRONG_INLINE
const CwiseBinaryOp<internal::scalar_max_op<Scalar,Scalar,NaNPropagation>,
const Derived,
91 const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
92 #ifdef EIGEN_PARSED_BY_DOXYGEN
97 (
const Scalar &other)
const
99 return (max<NaNPropagation>)(Derived::PlainObject::Constant(
rows(),
cols(), other));
116 EIGEN_STRONG_INLINE
const CwiseBinaryOp<internal::scalar_absolute_difference_op<Scalar,Scalar>,
const Derived,
117 const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
118 #ifdef EIGEN_PARSED_BY_DOXYGEN
123 (
const Scalar &other)
const
146 #define EIGEN_MAKE_CWISE_COMP_OP(OP, COMPARATOR) \
147 template<typename OtherDerived> \
148 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_cmp_op<Scalar, typename OtherDerived::Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const OtherDerived> \
149 OP(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
151 return CwiseBinaryOp<internal::scalar_cmp_op<Scalar, typename OtherDerived::Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const OtherDerived>(derived(), other.derived()); \
153 typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar,Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> > Cmp ## COMPARATOR ## ReturnType; \
154 typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar,Scalar, internal::cmp_ ## COMPARATOR>, const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject>, const Derived > RCmp ## COMPARATOR ## ReturnType; \
155 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Cmp ## COMPARATOR ## ReturnType \
156 OP(const Scalar& s) const { \
157 return this->OP(Derived::PlainObject::Constant(rows(), cols(), s)); \
159 EIGEN_DEVICE_FUNC friend EIGEN_STRONG_INLINE const RCmp ## COMPARATOR ## ReturnType \
160 OP(const Scalar& s, const EIGEN_CURRENT_STORAGE_BASE_CLASS<Derived>& d) { \
161 return Derived::PlainObject::Constant(d.rows(), d.cols(), s).OP(d); \
164 #define EIGEN_MAKE_CWISE_COMP_R_OP(OP, R_OP, RCOMPARATOR) \
165 template<typename OtherDerived> \
166 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_cmp_op<typename OtherDerived::Scalar, Scalar, internal::cmp_##RCOMPARATOR>, const OtherDerived, const Derived> \
167 OP(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
169 return CwiseBinaryOp<internal::scalar_cmp_op<typename OtherDerived::Scalar, Scalar, internal::cmp_##RCOMPARATOR>, const OtherDerived, const Derived>(other.derived(), derived()); \
172 inline const RCmp ## RCOMPARATOR ## ReturnType \
173 OP(const Scalar& s) const { \
174 return Derived::PlainObject::Constant(rows(), cols(), s).R_OP(*this); \
176 friend inline const Cmp ## RCOMPARATOR ## ReturnType \
177 OP(const Scalar& s, const Derived& d) { \
178 return d.R_OP(Derived::PlainObject::Constant(d.rows(), d.cols(), s)); \
248 #undef EIGEN_MAKE_CWISE_COMP_OP
249 #undef EIGEN_MAKE_CWISE_COMP_R_OP
252 #ifndef EIGEN_PARSED_BY_DOXYGEN
265 const CwiseBinaryOp<internal::scalar_sum_op<Scalar,T>,Derived,Constant<T> >
operator+(
const T& scalar)
const;
270 template<
typename T>
friend
271 const CwiseBinaryOp<internal::scalar_sum_op<T,Scalar>,Constant<T>,Derived>
operator+(
const T& scalar,
const StorageBaseType& expr);
274 #ifndef EIGEN_PARSED_BY_DOXYGEN
287 const CwiseBinaryOp<internal::scalar_difference_op<Scalar,T>,Derived,Constant<T> >
operator-(
const T& scalar)
const;
292 template<
typename T>
friend
293 const CwiseBinaryOp<internal::scalar_difference_op<T,Scalar>,Constant<T>,Derived>
operator-(
const T& scalar,
const StorageBaseType& expr);
297 #ifndef EIGEN_PARSED_BY_DOXYGEN
305 template<
typename T>
friend
306 inline const CwiseBinaryOp<internal::scalar_quotient_op<T,Scalar>,Constant<T>,Derived>
322 template<
typename DerivedN>
323 inline const CwiseBinaryOp<internal::scalar_polygamma_op<Scalar>,
const DerivedN,
const Derived>
324 polygamma(
const EIGEN_CURRENT_STORAGE_BASE_CLASS<DerivedN> &
n)
const
326 return CwiseBinaryOp<internal::scalar_polygamma_op<Scalar>,
const DerivedN,
const Derived>(
n.derived(), this->derived());
346 template<
typename DerivedQ>
347 inline const CwiseBinaryOp<internal::scalar_zeta_op<Scalar>,
const Derived,
const DerivedQ>
348 zeta(
const EIGEN_CURRENT_STORAGE_BASE_CLASS<DerivedQ> &q)
const
350 return CwiseBinaryOp<internal::scalar_zeta_op<Scalar>,
const Derived,
const DerivedQ>(this->derived(), q.derived());
#define EIGEN_CURRENT_STORAGE_BASE_CLASS
const CwiseBinaryOp< internal::scalar_min_op< Scalar, Scalar, NaNPropagation >, const Derived, const OtherDerived > min(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
const CwiseBinaryOp< internal::scalar_max_op< Scalar, Scalar, NaNPropagation >, const Derived, const OtherDerived > max(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
const CwiseBinaryOp< absolute_difference< Scalar >, const Derived, const OtherDerived > absolute_difference(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
const CwiseBinaryOp< internal::scalar_quotient_op< Scalar, typename OtherDerived::Scalar >, const Derived, const OtherDerived > operator/(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
#define EIGEN_MAKE_CWISE_COMP_OP(OP, COMPARATOR)
#define EIGEN_MAKE_CWISE_COMP_R_OP(OP, R_OP, RCOMPARATOR)
const CwiseBinaryOp< internal::scalar_difference_op< Scalar, T >, Derived, Constant< T > > operator-(const T &scalar) const
const CwiseBinaryOp< internal::scalar_zeta_op< Scalar >, const Derived, const DerivedQ > zeta(const EIGEN_CURRENT_STORAGE_BASE_CLASS< DerivedQ > &q) const
const CwiseBinaryOp< internal::scalar_sum_op< Scalar, T >, Derived, Constant< T > > operator+(const T &scalar) const
#define EIGEN_CWISE_BINARY_RETURN_TYPE(LHS, RHS, OPNAME)
#define EIGEN_DEVICE_FUNC
#define EIGEN_MAKE_SCALAR_BINARY_OP_ONTHELEFT(METHOD, OPNAME)
#define EIGEN_MAKE_SCALAR_BINARY_OP(METHOD, OPNAME)
#define EIGEN_MAKE_CWISE_BINARY_OP(METHOD, OPNAME)
const GlobalUnaryPowReturnType< Derived, ScalarExponent > pow(const Eigen::ArrayBase< Derived > &x, const ScalarExponent &exponent)
const std::enable_if_t< std::is_same< typename LhsDerived::Scalar, typename RhsDerived::Scalar >::value, Eigen::CwiseBinaryOp< Eigen::internal::scalar_atan2_op< typename LhsDerived::Scalar, typename RhsDerived::Scalar >, const LhsDerived, const RhsDerived > > atan2(const Eigen::ArrayBase< LhsDerived > &x, const Eigen::ArrayBase< RhsDerived > &exponents)