mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-10-16 01:51:29 +08:00
526 lines
23 KiB
C++
526 lines
23 KiB
C++
|
|
|
|
typedef CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> AbsReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_arg_op<Scalar>, const Derived> ArgReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_carg_op<Scalar>, const Derived> CArgReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> Abs2ReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> SqrtReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_cbrt_op<Scalar>, const Derived> CbrtReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_rsqrt_op<Scalar>, const Derived> RsqrtReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_sign_op<Scalar>, const Derived> SignReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> InverseReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_boolean_not_op<Scalar>, const Derived> BooleanNotReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_bitwise_not_op<Scalar>, const Derived> BitwiseNotReturnType;
|
|
|
|
typedef CwiseUnaryOp<internal::scalar_exp_op<Scalar>, const Derived> ExpReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_expm1_op<Scalar>, const Derived> Expm1ReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_log_op<Scalar>, const Derived> LogReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_log1p_op<Scalar>, const Derived> Log1pReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_log10_op<Scalar>, const Derived> Log10ReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_log2_op<Scalar>, const Derived> Log2ReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_cos_op<Scalar>, const Derived> CosReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_sin_op<Scalar>, const Derived> SinReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_tan_op<Scalar>, const Derived> TanReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_acos_op<Scalar>, const Derived> AcosReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_asin_op<Scalar>, const Derived> AsinReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_atan_op<Scalar>, const Derived> AtanReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_tanh_op<Scalar>, const Derived> TanhReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_logistic_op<Scalar>, const Derived> LogisticReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_sinh_op<Scalar>, const Derived> SinhReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_atanh_op<Scalar>, const Derived> AtanhReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_asinh_op<Scalar>, const Derived> AsinhReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_acosh_op<Scalar>, const Derived> AcoshReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_cosh_op<Scalar>, const Derived> CoshReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_square_op<Scalar>, const Derived> SquareReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_cube_op<Scalar>, const Derived> CubeReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_round_op<Scalar>, const Derived> RoundReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_rint_op<Scalar>, const Derived> RintReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_floor_op<Scalar>, const Derived> FloorReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_ceil_op<Scalar>, const Derived> CeilReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_isnan_op<Scalar>, const Derived> IsNaNReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_isinf_op<Scalar>, const Derived> IsInfReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_isfinite_op<Scalar>, const Derived> IsFiniteReturnType;
|
|
|
|
/** \returns an expression of the coefficient-wise absolute value of \c *this
|
|
*
|
|
* Example: \include Cwise_abs.cpp
|
|
* Output: \verbinclude Cwise_abs.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_abs">Math functions</a>, abs2()
|
|
*/
|
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const AbsReturnType abs() const { return AbsReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise phase angle of \c *this
|
|
*
|
|
* Example: \include Cwise_arg.cpp
|
|
* Output: \verbinclude Cwise_arg.out
|
|
*
|
|
* \sa abs()
|
|
*/
|
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ArgReturnType arg() const { return ArgReturnType(derived()); }
|
|
|
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CArgReturnType carg() const { return CArgReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise squared absolute value of \c *this
|
|
*
|
|
* Example: \include Cwise_abs2.cpp
|
|
* Output: \verbinclude Cwise_abs2.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_abs2">Math functions</a>, abs(), square()
|
|
*/
|
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Abs2ReturnType abs2() const { return Abs2ReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise exponential of *this.
|
|
*
|
|
* This function computes the coefficient-wise exponential. The function MatrixBase::exp() in the
|
|
* unsupported module MatrixFunctions computes the matrix exponential.
|
|
*
|
|
* Example: \include Cwise_exp.cpp
|
|
* Output: \verbinclude Cwise_exp.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_exp">Math functions</a>, pow(), log(), sin(), cos()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const ExpReturnType exp() const { return ExpReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise exponential of *this minus 1.
|
|
*
|
|
* In exact arithmetic, \c x.expm1() is equivalent to \c x.exp() - 1,
|
|
* however, with finite precision, this function is much more accurate when \c x is close to zero.
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_expm1">Math functions</a>, exp()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const Expm1ReturnType expm1() const { return Expm1ReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise logarithm of *this.
|
|
*
|
|
* This function computes the coefficient-wise logarithm. The function MatrixBase::log() in the
|
|
* unsupported module MatrixFunctions computes the matrix logarithm.
|
|
*
|
|
* Example: \include Cwise_log.cpp
|
|
* Output: \verbinclude Cwise_log.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_log">Math functions</a>, log()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const LogReturnType log() const { return LogReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise logarithm of 1 plus \c *this.
|
|
*
|
|
* In exact arithmetic, \c x.log() is equivalent to \c (x+1).log(),
|
|
* however, with finite precision, this function is much more accurate when \c x is close to zero.
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_log1p">Math functions</a>, log()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const Log1pReturnType log1p() const { return Log1pReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise base-10 logarithm of *this.
|
|
*
|
|
* This function computes the coefficient-wise base-10 logarithm.
|
|
*
|
|
* Example: \include Cwise_log10.cpp
|
|
* Output: \verbinclude Cwise_log10.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_log10">Math functions</a>, log()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const Log10ReturnType log10() const { return Log10ReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise base-2 logarithm of *this.
|
|
*
|
|
* This function computes the coefficient-wise base-2 logarithm.
|
|
*
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const Log2ReturnType log2() const { return Log2ReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise square root of *this.
|
|
*
|
|
* This function computes the coefficient-wise square root. The function MatrixBase::sqrt() in the
|
|
* unsupported module MatrixFunctions computes the matrix square root.
|
|
*
|
|
* Example: \include Cwise_sqrt.cpp
|
|
* Output: \verbinclude Cwise_sqrt.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_sqrt">Math functions</a>, pow(), square(), cbrt()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const SqrtReturnType sqrt() const { return SqrtReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise cube root of *this.
|
|
*
|
|
* This function computes the coefficient-wise cube root.
|
|
*
|
|
* Example: \include Cwise_cbrt.cpp
|
|
* Output: \verbinclude Cwise_cbrt.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_cbrt">Math functions</a>, sqrt(), pow(), square()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const CbrtReturnType cbrt() const { return CbrtReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise inverse square root of *this.
|
|
*
|
|
* This function computes the coefficient-wise inverse square root.
|
|
*
|
|
* Example: \include Cwise_sqrt.cpp
|
|
* Output: \verbinclude Cwise_sqrt.out
|
|
*
|
|
* \sa pow(), square()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const RsqrtReturnType rsqrt() const { return RsqrtReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise signum of *this.
|
|
*
|
|
* This function computes the coefficient-wise signum.
|
|
*
|
|
* Example: \include Cwise_sign.cpp
|
|
* Output: \verbinclude Cwise_sign.out
|
|
*
|
|
* \sa pow(), square()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const SignReturnType sign() const { return SignReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise cosine of *this.
|
|
*
|
|
* This function computes the coefficient-wise cosine. The function MatrixBase::cos() in the
|
|
* unsupported module MatrixFunctions computes the matrix cosine.
|
|
*
|
|
* Example: \include Cwise_cos.cpp
|
|
* Output: \verbinclude Cwise_cos.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_cos">Math functions</a>, sin(), acos()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const CosReturnType cos() const { return CosReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise sine of *this.
|
|
*
|
|
* This function computes the coefficient-wise sine. The function MatrixBase::sin() in the
|
|
* unsupported module MatrixFunctions computes the matrix sine.
|
|
*
|
|
* Example: \include Cwise_sin.cpp
|
|
* Output: \verbinclude Cwise_sin.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_sin">Math functions</a>, cos(), asin()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const SinReturnType sin() const { return SinReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise tan of *this.
|
|
*
|
|
* Example: \include Cwise_tan.cpp
|
|
* Output: \verbinclude Cwise_tan.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_tan">Math functions</a>, cos(), sin()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const TanReturnType tan() const { return TanReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise arc tan of *this.
|
|
*
|
|
* Example: \include Cwise_atan.cpp
|
|
* Output: \verbinclude Cwise_atan.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_atan">Math functions</a>, tan(), asin(), acos()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const AtanReturnType atan() const { return AtanReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise arc cosine of *this.
|
|
*
|
|
* Example: \include Cwise_acos.cpp
|
|
* Output: \verbinclude Cwise_acos.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_acos">Math functions</a>, cos(), asin()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const AcosReturnType acos() const { return AcosReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise arc sine of *this.
|
|
*
|
|
* Example: \include Cwise_asin.cpp
|
|
* Output: \verbinclude Cwise_asin.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_asin">Math functions</a>, sin(), acos()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const AsinReturnType asin() const { return AsinReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise hyperbolic tan of *this.
|
|
*
|
|
* Example: \include Cwise_tanh.cpp
|
|
* Output: \verbinclude Cwise_tanh.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_tanh">Math functions</a>, tan(), sinh(), cosh()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const TanhReturnType tanh() const { return TanhReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise hyperbolic sin of *this.
|
|
*
|
|
* Example: \include Cwise_sinh.cpp
|
|
* Output: \verbinclude Cwise_sinh.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_sinh">Math functions</a>, sin(), tanh(), cosh()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const SinhReturnType sinh() const { return SinhReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise hyperbolic cos of *this.
|
|
*
|
|
* Example: \include Cwise_cosh.cpp
|
|
* Output: \verbinclude Cwise_cosh.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_cosh">Math functions</a>, tanh(), sinh(), cosh()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const CoshReturnType cosh() const { return CoshReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise inverse hyperbolic tan of *this.
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_atanh">Math functions</a>, atanh(), asinh(), acosh()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const AtanhReturnType atanh() const { return AtanhReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise inverse hyperbolic sin of *this.
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_asinh">Math functions</a>, atanh(), asinh(), acosh()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const AsinhReturnType asinh() const { return AsinhReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise inverse hyperbolic cos of *this.
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_acosh">Math functions</a>, atanh(), asinh(), acosh()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const AcoshReturnType acosh() const { return AcoshReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise logistic of *this.
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const LogisticReturnType logistic() const { return LogisticReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise inverse of *this.
|
|
*
|
|
* Example: \include Cwise_inverse.cpp
|
|
* Output: \verbinclude Cwise_inverse.out
|
|
*
|
|
* \sa operator/(), operator*()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const InverseReturnType inverse() const { return InverseReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise square of *this.
|
|
*
|
|
* Example: \include Cwise_square.cpp
|
|
* Output: \verbinclude Cwise_square.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_squareE">Math functions</a>, abs2(), cube(), pow()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const SquareReturnType square() const { return SquareReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise cube of *this.
|
|
*
|
|
* Example: \include Cwise_cube.cpp
|
|
* Output: \verbinclude Cwise_cube.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_cube">Math functions</a>, square(), pow()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const CubeReturnType cube() const { return CubeReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise rint of *this.
|
|
*
|
|
* Example: \include Cwise_rint.cpp
|
|
* Output: \verbinclude Cwise_rint.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_rint">Math functions</a>, ceil(), floor()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const RintReturnType rint() const { return RintReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise round of *this.
|
|
*
|
|
* Example: \include Cwise_round.cpp
|
|
* Output: \verbinclude Cwise_round.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_round">Math functions</a>, ceil(), floor()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const RoundReturnType round() const { return RoundReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise floor of *this.
|
|
*
|
|
* Example: \include Cwise_floor.cpp
|
|
* Output: \verbinclude Cwise_floor.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_floor">Math functions</a>, ceil(), round()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const FloorReturnType floor() const { return FloorReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise ceil of *this.
|
|
*
|
|
* Example: \include Cwise_ceil.cpp
|
|
* Output: \verbinclude Cwise_ceil.out
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_ceil">Math functions</a>, floor(), round()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const CeilReturnType ceil() const { return CeilReturnType(derived()); }
|
|
|
|
template <int N>
|
|
struct ShiftRightXpr {
|
|
typedef CwiseUnaryOp<internal::scalar_shift_right_op<Scalar, N>, const Derived> Type;
|
|
};
|
|
|
|
/** \returns an expression of \c *this with the \a Scalar type arithmetically
|
|
* shifted right by \a N bit positions.
|
|
*
|
|
* The template parameter \a N specifies the number of bit positions to shift.
|
|
*
|
|
* \sa shiftLeft()
|
|
*/
|
|
template <int N>
|
|
EIGEN_DEVICE_FUNC typename ShiftRightXpr<N>::Type shiftRight() const {
|
|
return typename ShiftRightXpr<N>::Type(derived());
|
|
}
|
|
|
|
template <int N>
|
|
struct ShiftLeftXpr {
|
|
typedef CwiseUnaryOp<internal::scalar_shift_left_op<Scalar, N>, const Derived> Type;
|
|
};
|
|
|
|
/** \returns an expression of \c *this with the \a Scalar type logically
|
|
* shifted left by \a N bit positions.
|
|
*
|
|
* The template parameter \a N specifies the number of bit positions to shift.
|
|
*
|
|
* \sa shiftRight()
|
|
*/
|
|
template <int N>
|
|
EIGEN_DEVICE_FUNC typename ShiftLeftXpr<N>::Type shiftLeft() const {
|
|
return typename ShiftLeftXpr<N>::Type(derived());
|
|
}
|
|
|
|
/** \returns an expression of the coefficient-wise isnan of *this.
|
|
*
|
|
* Example: \include Cwise_isNaN.cpp
|
|
* Output: \verbinclude Cwise_isNaN.out
|
|
*
|
|
* \sa isfinite(), isinf()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const IsNaNReturnType isNaN() const { return IsNaNReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise isinf of *this.
|
|
*
|
|
* Example: \include Cwise_isInf.cpp
|
|
* Output: \verbinclude Cwise_isInf.out
|
|
*
|
|
* \sa isnan(), isfinite()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const IsInfReturnType isInf() const { return IsInfReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise isfinite of *this.
|
|
*
|
|
* Example: \include Cwise_isFinite.cpp
|
|
* Output: \verbinclude Cwise_isFinite.out
|
|
*
|
|
* \sa isnan(), isinf()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const IsFiniteReturnType isFinite() const { return IsFiniteReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise ! operator of *this
|
|
*
|
|
* Example: \include Cwise_boolean_not.cpp
|
|
* Output: \verbinclude Cwise_boolean_not.out
|
|
*
|
|
* \sa operator!=()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const BooleanNotReturnType operator!() const { return BooleanNotReturnType(derived()); }
|
|
|
|
/** \returns an expression of the bitwise ~ operator of *this
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const BitwiseNotReturnType operator~() const { return BitwiseNotReturnType(derived()); }
|
|
|
|
// --- SpecialFunctions module ---
|
|
|
|
typedef CwiseUnaryOp<internal::scalar_lgamma_op<Scalar>, const Derived> LgammaReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_digamma_op<Scalar>, const Derived> DigammaReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_erf_op<Scalar>, const Derived> ErfReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_erfc_op<Scalar>, const Derived> ErfcReturnType;
|
|
typedef CwiseUnaryOp<internal::scalar_ndtri_op<Scalar>, const Derived> NdtriReturnType;
|
|
|
|
/** \cpp11 \returns an expression of the coefficient-wise ln(|gamma(*this)|).
|
|
*
|
|
* \specialfunctions_module
|
|
*
|
|
* \note This function supports only float and double scalar types in c++11 mode. To support other scalar types,
|
|
* or float/double in non c++11 mode, the user has to provide implementations of lgamma(T) for any scalar
|
|
* type T to be supported.
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_lgamma">Math functions</a>, digamma()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const LgammaReturnType lgamma() const { return LgammaReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise digamma (psi, derivative of lgamma).
|
|
*
|
|
* \specialfunctions_module
|
|
*
|
|
* \note This function supports only float and double scalar types. To support other scalar types,
|
|
* the user has to provide implementations of digamma(T) for any scalar
|
|
* type T to be supported.
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_digamma">Math functions</a>, Eigen::digamma(),
|
|
* Eigen::polygamma(), lgamma()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const DigammaReturnType digamma() const { return DigammaReturnType(derived()); }
|
|
|
|
/** \cpp11 \returns an expression of the coefficient-wise Gauss error
|
|
* function of *this.
|
|
*
|
|
* \specialfunctions_module
|
|
*
|
|
* \note This function supports only float and double scalar types in c++11 mode. To support other scalar types,
|
|
* or float/double in non c++11 mode, the user has to provide implementations of erf(T) for any scalar
|
|
* type T to be supported.
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_erf">Math functions</a>, erfc()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const ErfReturnType erf() const { return ErfReturnType(derived()); }
|
|
|
|
/** \cpp11 \returns an expression of the coefficient-wise Complementary error
|
|
* function of *this.
|
|
*
|
|
* \specialfunctions_module
|
|
*
|
|
* \note This function supports only float and double scalar types in c++11 mode. To support other scalar types,
|
|
* or float/double in non c++11 mode, the user has to provide implementations of erfc(T) for any scalar
|
|
* type T to be supported.
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_erfc">Math functions</a>, erf()
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const ErfcReturnType erfc() const { return ErfcReturnType(derived()); }
|
|
|
|
/** \returns an expression of the coefficient-wise inverse of the CDF of the Normal distribution function
|
|
* function of *this.
|
|
*
|
|
* \specialfunctions_module
|
|
*
|
|
* In other words, considering `x = ndtri(y)`, it returns the argument, x, for which the area under the
|
|
* Gaussian probability density function (integrated from minus infinity to x) is equal to y.
|
|
*
|
|
* \note This function supports only float and double scalar types. To support other scalar types,
|
|
* the user has to provide implementations of ndtri(T) for any scalar type T to be supported.
|
|
*
|
|
* \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_ndtri">Math functions</a>
|
|
*/
|
|
EIGEN_DEVICE_FUNC inline const NdtriReturnType ndtri() const { return NdtriReturnType(derived()); }
|
|
|
|
template <typename ScalarExponent>
|
|
using UnaryPowReturnType =
|
|
std::enable_if_t<internal::is_arithmetic<typename NumTraits<ScalarExponent>::Real>::value,
|
|
CwiseUnaryOp<internal::scalar_unary_pow_op<Scalar, ScalarExponent>, const Derived>>;
|
|
|
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
template <typename ScalarExponent>
|
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const UnaryPowReturnType<ScalarExponent> pow(
|
|
const ScalarExponent& exponent) const {
|
|
return UnaryPowReturnType<ScalarExponent>(derived(), internal::scalar_unary_pow_op<Scalar, ScalarExponent>(exponent));
|
|
#else
|
|
/** \returns an expression of the coefficients of \c *this rasied to the constant power \a exponent
|
|
*
|
|
* \tparam T is the scalar type of \a exponent. It must be compatible with the scalar type of the given expression.
|
|
*
|
|
* This function computes the coefficient-wise power. The function MatrixBase::pow() in the
|
|
* unsupported module MatrixFunctions computes the matrix power.
|
|
*
|
|
* Example: \include Cwise_pow.cpp
|
|
* Output: \verbinclude Cwise_pow.out
|
|
*
|
|
* \sa ArrayBase::pow(ArrayBase), square(), cube(), exp(), log()
|
|
*/
|
|
template <typename ScalarExponent>
|
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const UnaryPowReturnType<ScalarExponent> pow(
|
|
const ScalarExponent& exponent) const;
|
|
#endif
|
|
}
|