mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-29 23:34:12 +08:00
Add component-wise atan() function (see bug #80).
This commit is contained in:
parent
afb1a8c124
commit
eb49100de9
@ -202,6 +202,7 @@ EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(asin, Asin)
|
|||||||
EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(cos, Cos)
|
EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(cos, Cos)
|
||||||
EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(acos, Acos)
|
EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(acos, Acos)
|
||||||
EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(tan, Tan)
|
EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(tan, Tan)
|
||||||
|
EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(atan, Atan)
|
||||||
//EIGEN_MKL_VML_DECLARE_UNARY_CALLS(abs, Abs)
|
//EIGEN_MKL_VML_DECLARE_UNARY_CALLS(abs, Abs)
|
||||||
EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(exp, Exp)
|
EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(exp, Exp)
|
||||||
EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(log, Ln)
|
EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(log, Ln)
|
||||||
|
@ -318,6 +318,10 @@ Packet pasin(const Packet& a) { using std::asin; return asin(a); }
|
|||||||
template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
|
template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
|
||||||
Packet pacos(const Packet& a) { using std::acos; return acos(a); }
|
Packet pacos(const Packet& a) { using std::acos; return acos(a); }
|
||||||
|
|
||||||
|
/** \internal \returns the atan of \a a (coeff-wise) */
|
||||||
|
template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
|
||||||
|
Packet patan(const Packet& a) { using std::atan; return atan(a); }
|
||||||
|
|
||||||
/** \internal \returns the exp of \a a (coeff-wise) */
|
/** \internal \returns the exp of \a a (coeff-wise) */
|
||||||
template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
|
template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
|
||||||
Packet pexp(const Packet& a) { using std::exp; return exp(a); }
|
Packet pexp(const Packet& a) { using std::exp; return exp(a); }
|
||||||
|
@ -45,6 +45,7 @@ namespace Eigen
|
|||||||
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(asin,scalar_asin_op)
|
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(asin,scalar_asin_op)
|
||||||
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(acos,scalar_acos_op)
|
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(acos,scalar_acos_op)
|
||||||
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(tan,scalar_tan_op)
|
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(tan,scalar_tan_op)
|
||||||
|
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(atan,scalar_atan_op)
|
||||||
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(exp,scalar_exp_op)
|
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(exp,scalar_exp_op)
|
||||||
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(log,scalar_log_op)
|
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(log,scalar_log_op)
|
||||||
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(abs,scalar_abs_op)
|
EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(abs,scalar_abs_op)
|
||||||
|
@ -320,6 +320,26 @@ struct functor_traits<scalar_asin_op<Scalar> >
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/** \internal
|
||||||
|
* \brief Template functor to compute the atan of a scalar
|
||||||
|
* \sa class CwiseUnaryOp, ArrayBase::atan()
|
||||||
|
*/
|
||||||
|
template<typename Scalar> struct scalar_atan_op {
|
||||||
|
EIGEN_EMPTY_STRUCT_CTOR(scalar_atan_op)
|
||||||
|
inline const Scalar operator() (const Scalar& a) const { using std::atan; return atan(a); }
|
||||||
|
typedef typename packet_traits<Scalar>::type Packet;
|
||||||
|
inline Packet packetOp(const Packet& a) const { return internal::patan(a); }
|
||||||
|
};
|
||||||
|
template<typename Scalar>
|
||||||
|
struct functor_traits<scalar_atan_op<Scalar> >
|
||||||
|
{
|
||||||
|
enum {
|
||||||
|
Cost = 5 * NumTraits<Scalar>::MulCost,
|
||||||
|
PacketAccess = packet_traits<Scalar>::HasATan
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
/** \internal
|
/** \internal
|
||||||
* \brief Template functor to compute the inverse of a scalar
|
* \brief Template functor to compute the inverse of a scalar
|
||||||
* \sa class CwiseUnaryOp, Cwise::inverse()
|
* \sa class CwiseUnaryOp, Cwise::inverse()
|
||||||
|
@ -141,6 +141,15 @@ tan() const
|
|||||||
return derived();
|
return derived();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** \returns an expression of the coefficient-wise arc tan of *this.
|
||||||
|
*
|
||||||
|
* \sa cos(), sin(), tan()
|
||||||
|
*/
|
||||||
|
inline const CwiseUnaryOp<internal::scalar_atan_op<Scalar>, Derived>
|
||||||
|
atan() const
|
||||||
|
{
|
||||||
|
return derived();
|
||||||
|
}
|
||||||
|
|
||||||
/** \returns an expression of the coefficient-wise power of *this to the given exponent.
|
/** \returns an expression of the coefficient-wise power of *this to the given exponent.
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user