1c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 2c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 32b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> AbsReturnType; 42b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_arg_op<Scalar>, const Derived> ArgReturnType; 52b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> Abs2ReturnType; 62b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> SqrtReturnType; 72b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_rsqrt_op<Scalar>, const Derived> RsqrtReturnType; 82b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_sign_op<Scalar>, const Derived> SignReturnType; 92b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> InverseReturnType; 102b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_boolean_not_op<Scalar>, const Derived> BooleanNotReturnType; 112b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 122b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_exp_op<Scalar>, const Derived> ExpReturnType; 132b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_log_op<Scalar>, const Derived> LogReturnType; 142b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_log1p_op<Scalar>, const Derived> Log1pReturnType; 152b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_log10_op<Scalar>, const Derived> Log10ReturnType; 162b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_cos_op<Scalar>, const Derived> CosReturnType; 172b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_sin_op<Scalar>, const Derived> SinReturnType; 182b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_tan_op<Scalar>, const Derived> TanReturnType; 192b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_acos_op<Scalar>, const Derived> AcosReturnType; 202b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_asin_op<Scalar>, const Derived> AsinReturnType; 212b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_atan_op<Scalar>, const Derived> AtanReturnType; 222b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_tanh_op<Scalar>, const Derived> TanhReturnType; 232b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_sinh_op<Scalar>, const Derived> SinhReturnType; 242b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_cosh_op<Scalar>, const Derived> CoshReturnType; 252b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_square_op<Scalar>, const Derived> SquareReturnType; 262b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_cube_op<Scalar>, const Derived> CubeReturnType; 272b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_round_op<Scalar>, const Derived> RoundReturnType; 282b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_floor_op<Scalar>, const Derived> FloorReturnType; 292b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_ceil_op<Scalar>, const Derived> CeilReturnType; 302b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_isnan_op<Scalar>, const Derived> IsNaNReturnType; 312b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_isinf_op<Scalar>, const Derived> IsInfReturnType; 322b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_isfinite_op<Scalar>, const Derived> IsFiniteReturnType; 332b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 34c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise absolute value of \c *this 35c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 36c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_abs.cpp 37c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_abs.out 38c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 392b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_abs">Math functions</a>, abs2() 40c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 412b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 422b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_STRONG_INLINE const AbsReturnType 43c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathabs() const 44c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 452b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return AbsReturnType(derived()); 462b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 472b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 482b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise phase angle of \c *this 492b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 502b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_arg.cpp 512b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_arg.out 522b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 532b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa abs() 542b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 552b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 562b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_STRONG_INLINE const ArgReturnType 572b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangarg() const 582b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 592b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return ArgReturnType(derived()); 60c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 61c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 62c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise squared absolute value of \c *this 63c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 64c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_abs2.cpp 65c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_abs2.out 66c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 672b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_abs2">Math functions</a>, abs(), square() 68c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 692b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 702b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_STRONG_INLINE const Abs2ReturnType 71c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathabs2() const 72c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 732b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return Abs2ReturnType(derived()); 74c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 75c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 76c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise exponential of *this. 77c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 782b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * This function computes the coefficient-wise exponential. The function MatrixBase::exp() in the 792b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * unsupported module MatrixFunctions computes the matrix exponential. 802b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 81c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_exp.cpp 82c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_exp.out 83c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 842b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_exp">Math functions</a>, pow(), log(), sin(), cos() 85c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 862b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 872b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const ExpReturnType 88c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathexp() const 89c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 902b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return ExpReturnType(derived()); 91c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 92c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 93c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise logarithm of *this. 94c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 952b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * This function computes the coefficient-wise logarithm. The function MatrixBase::log() in the 962b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * unsupported module MatrixFunctions computes the matrix logarithm. 972b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 98c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_log.cpp 99c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_log.out 100c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 1012b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_log">Math functions</a>, exp() 102c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 1032b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 1042b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const LogReturnType 105c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathlog() const 106c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 1072b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return LogReturnType(derived()); 1082b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 1092b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 1102b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise logarithm of 1 plus \c *this. 1112b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 1122b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * In exact arithmetic, \c x.log() is equivalent to \c (x+1).log(), 1132b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * however, with finite precision, this function is much more accurate when \c x is close to zero. 1142b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 1152b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_log1p">Math functions</a>, log() 1162b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 1172b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 1182b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const Log1pReturnType 1192b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanglog1p() const 1202b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 1212b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return Log1pReturnType(derived()); 1222b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 1232b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 1242b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise base-10 logarithm of *this. 1252b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 1262b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * This function computes the coefficient-wise base-10 logarithm. 1272b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 1282b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_log10.cpp 1292b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_log10.out 1302b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 1312b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_log10">Math functions</a>, log() 1322b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 1332b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 1342b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const Log10ReturnType 1352b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanglog10() const 1362b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 1372b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return Log10ReturnType(derived()); 138c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 139c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 140c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise square root of *this. 141c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 1422b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * This function computes the coefficient-wise square root. The function MatrixBase::sqrt() in the 1432b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * unsupported module MatrixFunctions computes the matrix square root. 1442b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 145c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_sqrt.cpp 146c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_sqrt.out 147c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 1482b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_sqrt">Math functions</a>, pow(), square() 149c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 1502b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 1512b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const SqrtReturnType 152c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathsqrt() const 153c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 1542b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return SqrtReturnType(derived()); 155c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 156c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 1572b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise inverse square root of *this. 1582b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 1592b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * This function computes the coefficient-wise inverse square root. 1602b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 1612b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_sqrt.cpp 1622b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_sqrt.out 1632b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 1642b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa pow(), square() 1652b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 1662b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 1672b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const RsqrtReturnType 1682b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangrsqrt() const 1692b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 1702b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return RsqrtReturnType(derived()); 1712b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 1722b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 1732b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise signum of *this. 1742b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 1752b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * This function computes the coefficient-wise signum. 1762b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 1772b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_sign.cpp 1782b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_sign.out 1792b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 1802b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa pow(), square() 1812b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 1822b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 1832b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const SignReturnType 1842b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangsign() const 1852b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 1862b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return SignReturnType(derived()); 1872b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 1882b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 1892b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 190c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise cosine of *this. 191c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 1922b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * This function computes the coefficient-wise cosine. The function MatrixBase::cos() in the 1932b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * unsupported module MatrixFunctions computes the matrix cosine. 1942b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 195c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_cos.cpp 196c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_cos.out 197c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 1982b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_cos">Math functions</a>, sin(), acos() 199c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 2002b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 2012b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const CosReturnType 202c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathcos() const 203c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 2042b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return CosReturnType(derived()); 205c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 206c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 207c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 208c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise sine of *this. 209c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 2102b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * This function computes the coefficient-wise sine. The function MatrixBase::sin() in the 2112b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * unsupported module MatrixFunctions computes the matrix sine. 2122b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 213c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_sin.cpp 214c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_sin.out 215c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 2162b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_sin">Math functions</a>, cos(), asin() 217c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 2182b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 2192b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const SinReturnType 220c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathsin() const 221c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 2222b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return SinReturnType(derived()); 2232b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 2242b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 2252b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise tan of *this. 2262b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 2272b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_tan.cpp 2282b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_tan.out 2292b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 2302b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_tan">Math functions</a>, cos(), sin() 2312b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 2322b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 2332b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const TanReturnType 2342b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtan() const 2352b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 2362b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return TanReturnType(derived()); 2372b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 2382b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 2392b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise arc tan of *this. 2402b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 2412b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_atan.cpp 2422b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_atan.out 2432b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 2442b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_atan">Math functions</a>, tan(), asin(), acos() 2452b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 2462b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 2472b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const AtanReturnType 2482b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangatan() const 2492b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 2502b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return AtanReturnType(derived()); 251c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 252c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 253c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise arc cosine of *this. 254c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 255c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_acos.cpp 256c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_acos.out 257c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 2582b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_acos">Math functions</a>, cos(), asin() 259c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 2602b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 2612b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const AcosReturnType 262c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathacos() const 263c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 2642b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return AcosReturnType(derived()); 265c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 266c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 267c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise arc sine of *this. 268c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 269c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_asin.cpp 270c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_asin.out 271c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 2722b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_asin">Math functions</a>, sin(), acos() 273c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 2742b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 2752b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const AsinReturnType 276c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathasin() const 277c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 2782b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return AsinReturnType(derived()); 279c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 280c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 2812b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise hyperbolic tan of *this. 282c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 2832b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_tanh.cpp 2842b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_tanh.out 285c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 2862b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_tanh">Math functions</a>, tan(), sinh(), cosh() 287c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 2882b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 2892b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const TanhReturnType 2902b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtanh() const 291c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 2922b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return TanhReturnType(derived()); 293c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 294c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 2952b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise hyperbolic sin of *this. 296c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 2972b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_sinh.cpp 2982b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_sinh.out 299c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 3002b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_sinh">Math functions</a>, sin(), tanh(), cosh() 301c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 3022b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 3032b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const SinhReturnType 3042b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangsinh() const 305c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 3062b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return SinhReturnType(derived()); 307c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 308c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 3092b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise hyperbolic cos of *this. 3102b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 3112b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_cosh.cpp 3122b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_cosh.out 3132b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 3142b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_cosh">Math functions</a>, tan(), sinh(), cosh() 3152b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 3162b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 3172b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const CoshReturnType 3182b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangcosh() const 3192b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 3202b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return CoshReturnType(derived()); 3212b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 322c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 323c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise inverse of *this. 324c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 325c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_inverse.cpp 326c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_inverse.out 327c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 328c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * \sa operator/(), operator*() 329c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 3302b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 3312b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const InverseReturnType 332c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinverse() const 333c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 3342b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return InverseReturnType(derived()); 335c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 336c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 337c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise square of *this. 338c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 339c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_square.cpp 340c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_square.out 341c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 3422b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_squareE">Math functions</a>, abs2(), cube(), pow() 343c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 3442b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 3452b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const SquareReturnType 346c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathsquare() const 347c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 3482b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return SquareReturnType(derived()); 349c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 350c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 351c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \returns an expression of the coefficient-wise cube of *this. 352c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 353c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Example: \include Cwise_cube.cpp 354c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * Output: \verbinclude Cwise_cube.out 355c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath * 3562b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_cube">Math functions</a>, square(), pow() 357c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath */ 3582b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 3592b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const CubeReturnType 360c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathcube() const 361c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 3622b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return CubeReturnType(derived()); 3632b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 3642b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 3652b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise round of *this. 3662b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 3672b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_round.cpp 3682b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_round.out 3692b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 3702b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_round">Math functions</a>, ceil(), floor() 3712b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 3722b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 3732b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const RoundReturnType 3742b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanground() const 3752b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 3762b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return RoundReturnType(derived()); 3772b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 3782b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 3792b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise floor of *this. 3802b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 3812b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_floor.cpp 3822b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_floor.out 3832b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 3842b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_floor">Math functions</a>, ceil(), round() 3852b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 3862b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 3872b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const FloorReturnType 3882b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangfloor() const 3892b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 3902b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return FloorReturnType(derived()); 3912b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 3922b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 3932b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise ceil of *this. 3942b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 3952b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_ceil.cpp 3962b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_ceil.out 3972b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 3982b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_ceil">Math functions</a>, floor(), round() 3992b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 4002b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 4012b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const CeilReturnType 4022b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangceil() const 4032b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 4042b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return CeilReturnType(derived()); 4052b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 4062b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 4072b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise isnan of *this. 4082b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4092b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_isNaN.cpp 4102b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_isNaN.out 4112b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4122b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa isfinite(), isinf() 4132b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 4142b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 4152b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const IsNaNReturnType 4162b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangisNaN() const 4172b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 4182b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return IsNaNReturnType(derived()); 4192b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 4202b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 4212b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise isinf of *this. 4222b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4232b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_isInf.cpp 4242b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_isInf.out 4252b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4262b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa isnan(), isfinite() 4272b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 4282b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 4292b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const IsInfReturnType 4302b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangisInf() const 4312b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 4322b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return IsInfReturnType(derived()); 4332b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 4342b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 4352b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise isfinite of *this. 4362b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4372b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_isFinite.cpp 4382b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_isFinite.out 4392b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4402b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa isnan(), isinf() 4412b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 4422b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 4432b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const IsFiniteReturnType 4442b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangisFinite() const 4452b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 4462b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return IsFiniteReturnType(derived()); 4472b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 4482b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 4492b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise ! operator of *this 4502b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4512b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \warning this operator is for expression of bool only. 4522b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4532b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_boolean_not.cpp 4542b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_boolean_not.out 4552b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4562b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa operator!=() 4572b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 4582b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 4592b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const BooleanNotReturnType 4602b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangoperator!() const 4612b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 4622b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value), 4632b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL); 4642b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return BooleanNotReturnType(derived()); 4652b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 4662b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 4672b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 4682b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang// --- SpecialFunctions module --- 4692b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 4702b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_lgamma_op<Scalar>, const Derived> LgammaReturnType; 4712b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_digamma_op<Scalar>, const Derived> DigammaReturnType; 4722b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_erf_op<Scalar>, const Derived> ErfReturnType; 4732b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangtypedef CwiseUnaryOp<internal::scalar_erfc_op<Scalar>, const Derived> ErfcReturnType; 4742b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 4752b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \cpp11 \returns an expression of the coefficient-wise ln(|gamma(*this)|). 4762b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4772b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \specialfunctions_module 4782b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4792b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_lgamma.cpp 4802b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_lgamma.out 4812b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4822b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \note This function supports only float and double scalar types in c++11 mode. To support other scalar types, 4832b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * or float/double in non c++11 mode, the user has to provide implementations of lgamma(T) for any scalar 4842b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * type T to be supported. 4852b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4862b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_lgamma">Math functions</a>, digamma() 4872b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 4882b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 4892b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const LgammaReturnType 4902b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanglgamma() const 4912b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 4922b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return LgammaReturnType(derived()); 4932b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 4942b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 4952b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \returns an expression of the coefficient-wise digamma (psi, derivative of lgamma). 4962b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4972b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \specialfunctions_module 4982b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 4992b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \note This function supports only float and double scalar types. To support other scalar types, 5002b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * the user has to provide implementations of digamma(T) for any scalar 5012b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * type T to be supported. 5022b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 5032b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_digamma">Math functions</a>, Eigen::digamma(), Eigen::polygamma(), lgamma() 5042b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 5052b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 5062b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const DigammaReturnType 5072b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangdigamma() const 5082b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 5092b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return DigammaReturnType(derived()); 5102b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 5112b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 5122b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \cpp11 \returns an expression of the coefficient-wise Gauss error 5132b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * function of *this. 5142b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 5152b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \specialfunctions_module 5162b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 5172b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_erf.cpp 5182b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_erf.out 5192b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 5202b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \note This function supports only float and double scalar types in c++11 mode. To support other scalar types, 5212b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * or float/double in non c++11 mode, the user has to provide implementations of erf(T) for any scalar 5222b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * type T to be supported. 5232b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 5242b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_erf">Math functions</a>, erfc() 5252b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 5262b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 5272b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const ErfReturnType 5282b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangerf() const 5292b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 5302b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return ErfReturnType(derived()); 5312b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang} 5322b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang 5332b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang/** \cpp11 \returns an expression of the coefficient-wise Complementary error 5342b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * function of *this. 5352b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 5362b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \specialfunctions_module 5372b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 5382b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Example: \include Cwise_erfc.cpp 5392b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * Output: \verbinclude Cwise_erfc.out 5402b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 5412b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \note This function supports only float and double scalar types in c++11 mode. To support other scalar types, 5422b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * or float/double in non c++11 mode, the user has to provide implementations of erfc(T) for any scalar 5432b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * type T to be supported. 5442b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * 5452b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_erfc">Math functions</a>, erf() 5462b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang */ 5472b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao WangEIGEN_DEVICE_FUNC 5482b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wanginline const ErfcReturnType 5492b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wangerfc() const 5502b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang{ 5512b8756b6f1de65d3f8bffab45be6c44ceb7411fcMiao Wang return ErfcReturnType(derived()); 552c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 553