mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-13 00:21:49 +08:00
Fix most Doxygen warnings. Also add links to stable documentation from unsupported modules (by using the corresponding Doxytags file).
This commit is contained in:
parent
a4afa90d16
commit
d107a371c6
@ -444,16 +444,24 @@ template<typename Derived> class MatrixBase
|
|||||||
///////// MatrixFunctions module /////////
|
///////// MatrixFunctions module /////////
|
||||||
|
|
||||||
typedef typename internal::stem_function<Scalar>::type StemFunction;
|
typedef typename internal::stem_function<Scalar>::type StemFunction;
|
||||||
const MatrixExponentialReturnValue<Derived> exp() const;
|
#define EIGEN_MATRIX_FUNCTION(ReturnType, Name, Description) \
|
||||||
|
/** \returns an expression of the matrix Description of \c *this. \brief This function requires the <a href="unsupported/group__MatrixFunctions__Module.html"> unsupported MatrixFunctions module</a>. To compute the coefficient-wise Description use ArrayBase::##Name . */ \
|
||||||
|
const ReturnType<Derived> Name() const;
|
||||||
|
#define EIGEN_MATRIX_FUNCTION_1(ReturnType, Name, Description, Argument) \
|
||||||
|
/** \returns an expression of the matrix Description of \c *this. \brief This function requires the <a href="unsupported/group__MatrixFunctions__Module.html"> unsupported MatrixFunctions module</a>. To compute the coefficient-wise Description use ArrayBase::##Name . */ \
|
||||||
|
const ReturnType<Derived> Name(Argument) const;
|
||||||
|
|
||||||
|
EIGEN_MATRIX_FUNCTION(MatrixExponentialReturnValue, exp, exponential)
|
||||||
|
/** \brief Helper function for the <a href="unsupported/group__MatrixFunctions__Module.html"> unsupported MatrixFunctions module</a>.*/
|
||||||
const MatrixFunctionReturnValue<Derived> matrixFunction(StemFunction f) const;
|
const MatrixFunctionReturnValue<Derived> matrixFunction(StemFunction f) const;
|
||||||
const MatrixFunctionReturnValue<Derived> cosh() const;
|
EIGEN_MATRIX_FUNCTION(MatrixFunctionReturnValue, cosh, hyperbolic cosine)
|
||||||
const MatrixFunctionReturnValue<Derived> sinh() const;
|
EIGEN_MATRIX_FUNCTION(MatrixFunctionReturnValue, sinh, hyperbolic sine)
|
||||||
const MatrixFunctionReturnValue<Derived> cos() const;
|
EIGEN_MATRIX_FUNCTION(MatrixFunctionReturnValue, cos, cosine)
|
||||||
const MatrixFunctionReturnValue<Derived> sin() const;
|
EIGEN_MATRIX_FUNCTION(MatrixFunctionReturnValue, sin, sine)
|
||||||
const MatrixSquareRootReturnValue<Derived> sqrt() const;
|
EIGEN_MATRIX_FUNCTION(MatrixSquareRootReturnValue, sqrt, square root)
|
||||||
const MatrixLogarithmReturnValue<Derived> log() const;
|
EIGEN_MATRIX_FUNCTION(MatrixLogarithmReturnValue, log, logarithm)
|
||||||
const MatrixPowerReturnValue<Derived> pow(const RealScalar& p) const;
|
EIGEN_MATRIX_FUNCTION_1(MatrixPowerReturnValue, pow, power to \c p, const RealScalar& p)
|
||||||
const MatrixComplexPowerReturnValue<Derived> pow(const std::complex<RealScalar>& p) const;
|
EIGEN_MATRIX_FUNCTION_1(MatrixComplexPowerReturnValue, pow, power to \c p, const std::complex<RealScalar>& p)
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
EIGEN_DEVICE_FUNC MatrixBase() : Base() {}
|
EIGEN_DEVICE_FUNC MatrixBase() : Base() {}
|
||||||
|
@ -34,8 +34,8 @@ set(EIGEN_DOXY_PROJECT_NAME "Eigen-unsupported")
|
|||||||
set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "/unsupported")
|
set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "/unsupported")
|
||||||
set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/unsupported/Eigen\" \"${Eigen_SOURCE_DIR}/unsupported/doc\"")
|
set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/unsupported/Eigen\" \"${Eigen_SOURCE_DIR}/unsupported/doc\"")
|
||||||
set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "0")
|
set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "0")
|
||||||
# set(EIGEN_DOXY_TAGFILES "\"${Eigen_BINARY_DIR}/doc/eigen.doxytags =../\"")
|
set(EIGEN_DOXY_TAGFILES "\"${Eigen_BINARY_DIR}/doc/Eigen.doxytags=..\"")
|
||||||
set(EIGEN_DOXY_TAGFILES "")
|
#set(EIGEN_DOXY_TAGFILES "")
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
||||||
|
@ -63,7 +63,7 @@ This also means that, unless specified, if the function \c std::foo is available
|
|||||||
\anchor cwisetable_conj
|
\anchor cwisetable_conj
|
||||||
a.\link ArrayBase::conjugate conjugate\endlink(); \n
|
a.\link ArrayBase::conjugate conjugate\endlink(); \n
|
||||||
\link Eigen::conj conj\endlink(a); \n
|
\link Eigen::conj conj\endlink(a); \n
|
||||||
m.\link MatrixBase::conjugate conjugate();
|
m.\link MatrixBase::conjugate conjugate\endlink();
|
||||||
</td>
|
</td>
|
||||||
<td><a href="https://en.wikipedia.org/wiki/Complex_conjugate">complex conjugate</a> (\f$ \bar{a_i} \f$),\n
|
<td><a href="https://en.wikipedia.org/wiki/Complex_conjugate">complex conjugate</a> (\f$ \bar{a_i} \f$),\n
|
||||||
no-op for real </td>
|
no-op for real </td>
|
||||||
@ -133,8 +133,9 @@ This also means that, unless specified, if the function \c std::foo is available
|
|||||||
<td class="code">
|
<td class="code">
|
||||||
\anchor cwisetable_pow
|
\anchor cwisetable_pow
|
||||||
a.\link ArrayBase::pow pow\endlink(b); \n
|
a.\link ArrayBase::pow pow\endlink(b); \n
|
||||||
\link Eigen::pow pow\endlink(a,b);
|
\link ArrayBase::pow(const Eigen::ArrayBase< Derived > &x, const Eigen::ArrayBase< ExponentDerived > &exponents) pow\endlink(a,b);
|
||||||
</td>
|
</td>
|
||||||
|
<!-- For some reason Doxygen thinks that pow is in ArrayBase namespace -->
|
||||||
<td>raises a number to the given power (\f$ a_i ^ {b_i} \f$) \n \c a and \c b can be either an array or scalar.</td>
|
<td>raises a number to the given power (\f$ a_i ^ {b_i} \f$) \n \c a and \c b can be either an array or scalar.</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
using <a href="http://en.cppreference.com/w/cpp/numeric/math/pow">std::pow</a>; \n
|
using <a href="http://en.cppreference.com/w/cpp/numeric/math/pow">std::pow</a>; \n
|
||||||
|
@ -1596,6 +1596,7 @@ PREDEFINED = EIGEN_EMPTY_STRUCT \
|
|||||||
"EIGEN_CAT2(a,b)= a ## b"\
|
"EIGEN_CAT2(a,b)= a ## b"\
|
||||||
"EIGEN_CAT(a,b)=EIGEN_CAT2(a,b)"\
|
"EIGEN_CAT(a,b)=EIGEN_CAT2(a,b)"\
|
||||||
"EIGEN_CWISE_BINARY_RETURN_TYPE(LHS,RHS,OPNAME)=CwiseBinaryOp<EIGEN_CAT(EIGEN_CAT(internal::scalar_,OPNAME),_op)<LHS::Scalar, RHS::Scalar>, const LHS, const RHS>"\
|
"EIGEN_CWISE_BINARY_RETURN_TYPE(LHS,RHS,OPNAME)=CwiseBinaryOp<EIGEN_CAT(EIGEN_CAT(internal::scalar_,OPNAME),_op)<LHS::Scalar, RHS::Scalar>, const LHS, const RHS>"\
|
||||||
|
"EIGEN_ALIGN_TO_BOUNDARY(x)="\
|
||||||
DOXCOMMA=,
|
DOXCOMMA=,
|
||||||
|
|
||||||
|
|
||||||
@ -1618,6 +1619,9 @@ EXPAND_AS_DEFINED = EIGEN_MAKE_TYPEDEFS \
|
|||||||
EIGEN_EULER_ANGLES_TYPEDEFS \
|
EIGEN_EULER_ANGLES_TYPEDEFS \
|
||||||
EIGEN_EULER_ANGLES_SINGLE_TYPEDEF \
|
EIGEN_EULER_ANGLES_SINGLE_TYPEDEF \
|
||||||
EIGEN_EULER_SYSTEM_TYPEDEF \
|
EIGEN_EULER_SYSTEM_TYPEDEF \
|
||||||
|
EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY \
|
||||||
|
EIGEN_MATRIX_FUNCTION \
|
||||||
|
EIGEN_MATRIX_FUNCTION_1 \
|
||||||
EIGEN_DOC_UNARY_ADDONS \
|
EIGEN_DOC_UNARY_ADDONS \
|
||||||
EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL \
|
EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL \
|
||||||
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF
|
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF
|
||||||
@ -1665,7 +1669,7 @@ ALLEXTERNALS = NO
|
|||||||
# in the modules index. If set to NO, only the current project's groups will
|
# in the modules index. If set to NO, only the current project's groups will
|
||||||
# be listed.
|
# be listed.
|
||||||
|
|
||||||
EXTERNAL_GROUPS = YES
|
EXTERNAL_GROUPS = NO
|
||||||
|
|
||||||
# The PERL_PATH should be the absolute path and name of the perl script
|
# The PERL_PATH should be the absolute path and name of the perl script
|
||||||
# interpreter (i.e. the result of `which perl').
|
# interpreter (i.e. the result of `which perl').
|
||||||
|
@ -23,12 +23,12 @@ namespace Eigen {
|
|||||||
* The %Tensor class encompasses only dynamic-size objects so far.
|
* The %Tensor class encompasses only dynamic-size objects so far.
|
||||||
*
|
*
|
||||||
* The first two template parameters are required:
|
* The first two template parameters are required:
|
||||||
* \tparam Scalar_ \anchor tensor_tparam_scalar Numeric type, e.g. float, double, int or std::complex<float>.
|
* \tparam Scalar_ Numeric type, e.g. float, double, int or `std::complex<float>`.
|
||||||
* User defined scalar types are supported as well (see \ref user_defined_scalars "here").
|
* User defined scalar types are supported as well (see \ref user_defined_scalars "here").
|
||||||
* \tparam NumIndices_ Number of indices (i.e. rank of the tensor)
|
* \tparam NumIndices_ Number of indices (i.e. rank of the tensor)
|
||||||
*
|
*
|
||||||
* The remaining template parameters are optional -- in most cases you don't have to worry about them.
|
* The remaining template parameters are optional -- in most cases you don't have to worry about them.
|
||||||
* \tparam Options_ \anchor tensor_tparam_options A combination of either \b #RowMajor or \b #ColMajor, and of either
|
* \tparam Options_ A combination of either \b #RowMajor or \b #ColMajor, and of either
|
||||||
* \b #AutoAlign or \b #DontAlign.
|
* \b #AutoAlign or \b #DontAlign.
|
||||||
* The former controls \ref TopicStorageOrders "storage order", and defaults to column-major. The latter controls alignment, which is required
|
* The former controls \ref TopicStorageOrders "storage order", and defaults to column-major. The latter controls alignment, which is required
|
||||||
* for vectorization. It defaults to aligning tensors. Note that tensors currently do not support any operations that profit from vectorization.
|
* for vectorization. It defaults to aligning tensors. Note that tensors currently do not support any operations that profit from vectorization.
|
||||||
@ -42,13 +42,13 @@ namespace Eigen {
|
|||||||
* \endcode
|
* \endcode
|
||||||
*
|
*
|
||||||
* This class can be extended with the help of the plugin mechanism described on the page
|
* This class can be extended with the help of the plugin mechanism described on the page
|
||||||
* \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_TENSOR_PLUGIN.
|
* \ref TopicCustomizing_Plugins by defining the preprocessor symbol \c EIGEN_TENSOR_PLUGIN.
|
||||||
*
|
*
|
||||||
* <i><b>Some notes:</b></i>
|
* <i><b>Some notes:</b></i>
|
||||||
*
|
*
|
||||||
* <dl>
|
* <dl>
|
||||||
* <dt><b>Relation to other parts of Eigen:</b></dt>
|
* <dt><b>Relation to other parts of Eigen:</b></dt>
|
||||||
* <dd>The midterm developement goal for this class is to have a similar hierarchy as Eigen uses for matrices, so that
|
* <dd>The midterm development goal for this class is to have a similar hierarchy as Eigen uses for matrices, so that
|
||||||
* taking blocks or using tensors in expressions is easily possible, including an interface with the vector/matrix code
|
* taking blocks or using tensors in expressions is easily possible, including an interface with the vector/matrix code
|
||||||
* by providing .asMatrix() and .asVector() (or similar) methods for rank 2 and 1 tensors. However, currently, the %Tensor
|
* by providing .asMatrix() and .asVector() (or similar) methods for rank 2 and 1 tensors. However, currently, the %Tensor
|
||||||
* class does not provide any of these features and is only available as a stand-alone class that just allows for
|
* class does not provide any of these features and is only available as a stand-alone class that just allows for
|
||||||
|
@ -12,19 +12,6 @@
|
|||||||
|
|
||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
/** \class TensorForcedEval
|
|
||||||
* \ingroup CXX11_Tensor_Module
|
|
||||||
*
|
|
||||||
* \brief Tensor reshaping class.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
/// template <class> class MakePointer_ is added to convert the host pointer to the device pointer.
|
|
||||||
/// It is added due to the fact that for our device compiler T* is not allowed.
|
|
||||||
/// If we wanted to use the same Evaluator functions we have to convert that type to our pointer T.
|
|
||||||
/// This is done through our MakePointer_ class. By default the Type in the MakePointer_<T> is T* .
|
|
||||||
/// Therefore, by adding the default value, we managed to convert the type and it does not break any
|
|
||||||
/// existing code as its default value is T*.
|
|
||||||
namespace internal {
|
namespace internal {
|
||||||
template<typename XprType, template <class> class MakePointer_>
|
template<typename XprType, template <class> class MakePointer_>
|
||||||
struct traits<TensorForcedEvalOp<XprType, MakePointer_> >
|
struct traits<TensorForcedEvalOp<XprType, MakePointer_> >
|
||||||
@ -65,6 +52,21 @@ struct nested<TensorForcedEvalOp<XprType, MakePointer_>, 1, typename eval<Tensor
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// FIXME use proper doxygen documentation (e.g. \tparam MakePointer_)
|
||||||
|
|
||||||
|
/** \class TensorForcedEvalOp
|
||||||
|
* \ingroup CXX11_Tensor_Module
|
||||||
|
*
|
||||||
|
* \brief Tensor reshaping class.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/// `template <class> class MakePointer_` is added to convert the host pointer to the device pointer.
|
||||||
|
/// It is added due to the fact that for our device compiler `T*` is not allowed.
|
||||||
|
/// If we wanted to use the same Evaluator functions we have to convert that type to our pointer `T`.
|
||||||
|
/// This is done through our `MakePointer_` class. By default the Type in the `MakePointer_<T>` is `T*` .
|
||||||
|
/// Therefore, by adding the default value, we managed to convert the type and it does not break any
|
||||||
|
/// existing code as its default value is `T*`.
|
||||||
template<typename XprType, template <class> class MakePointer_>
|
template<typename XprType, template <class> class MakePointer_>
|
||||||
class TensorForcedEvalOp : public TensorBase<TensorForcedEvalOp<XprType, MakePointer_>, ReadOnlyAccessors>
|
class TensorForcedEvalOp : public TensorBase<TensorForcedEvalOp<XprType, MakePointer_>, ReadOnlyAccessors>
|
||||||
{
|
{
|
||||||
|
@ -12,18 +12,20 @@
|
|||||||
|
|
||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
|
// FIXME use proper doxygen documentation (e.g. \tparam MakePointer_)
|
||||||
|
|
||||||
/** \class TensorMap
|
/** \class TensorMap
|
||||||
* \ingroup CXX11_Tensor_Module
|
* \ingroup CXX11_Tensor_Module
|
||||||
*
|
*
|
||||||
* \brief A tensor expression mapping an existing array of data.
|
* \brief A tensor expression mapping an existing array of data.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
/// template <class> class MakePointer_ is added to convert the host pointer to the device pointer.
|
/// `template <class> class MakePointer_` is added to convert the host pointer to the device pointer.
|
||||||
/// It is added due to the fact that for our device compiler T* is not allowed.
|
/// It is added due to the fact that for our device compiler `T*` is not allowed.
|
||||||
/// If we wanted to use the same Evaluator functions we have to convert that type to our pointer T.
|
/// If we wanted to use the same Evaluator functions we have to convert that type to our pointer `T`.
|
||||||
/// This is done through our MakePointer_ class. By default the Type in the MakePointer_<T> is T* .
|
/// This is done through our `MakePointer_` class. By default the Type in the `MakePointer_<T>` is `T*` .
|
||||||
/// Therefore, by adding the default value, we managed to convert the type and it does not break any
|
/// Therefore, by adding the default value, we managed to convert the type and it does not break any
|
||||||
/// existing code as its default value is T*.
|
/// existing code as its default value is `T*`.
|
||||||
template<typename PlainObjectType, int Options_, template <class> class MakePointer_> class TensorMap : public TensorBase<TensorMap<PlainObjectType, Options_, MakePointer_> >
|
template<typename PlainObjectType, int Options_, template <class> class MakePointer_> class TensorMap : public TensorBase<TensorMap<PlainObjectType, Options_, MakePointer_> >
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
namespace TensorSycl {
|
namespace TensorSycl {
|
||||||
namespace internal {
|
namespace internal {
|
||||||
/// \struct ExtractAccessor: Extract Accessor Class is used to extract the
|
/// struct ExtractAccessor: Extract Accessor Class is used to extract the
|
||||||
/// accessor from a buffer.
|
/// accessor from a buffer.
|
||||||
/// Depending on the type of the leaf node we can get a read accessor or a
|
/// Depending on the type of the leaf node we can get a read accessor or a
|
||||||
/// read_write accessor
|
/// read_write accessor
|
||||||
|
@ -147,6 +147,8 @@ struct IndexList {};
|
|||||||
template <size_t MIN, size_t N, size_t... Is>
|
template <size_t MIN, size_t N, size_t... Is>
|
||||||
struct RangeBuilder;
|
struct RangeBuilder;
|
||||||
|
|
||||||
|
// FIXME Doxygen has problems with recursive inheritance
|
||||||
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
||||||
/// \brief base Step: Specialisation of the \ref RangeBuilder when the
|
/// \brief base Step: Specialisation of the \ref RangeBuilder when the
|
||||||
/// MIN==MAX. In this case the Is... is [0 to sizeof...(tuple elements))
|
/// MIN==MAX. In this case the Is... is [0 to sizeof...(tuple elements))
|
||||||
/// \tparam MIN is the starting index of the tuple
|
/// \tparam MIN is the starting index of the tuple
|
||||||
@ -164,6 +166,7 @@ struct RangeBuilder<MIN, MIN, Is...> {
|
|||||||
/// \tparam Is... are the list of generated index so far
|
/// \tparam Is... are the list of generated index so far
|
||||||
template <size_t MIN, size_t N, size_t... Is>
|
template <size_t MIN, size_t N, size_t... Is>
|
||||||
struct RangeBuilder : public RangeBuilder<MIN, N - 1, N - 1, Is...> {};
|
struct RangeBuilder : public RangeBuilder<MIN, N - 1, N - 1, Is...> {};
|
||||||
|
#endif // EIGEN_PARSED_BY_DOXYGEN
|
||||||
|
|
||||||
/// \brief IndexRange that returns a [MIN, MAX) index range
|
/// \brief IndexRange that returns a [MIN, MAX) index range
|
||||||
/// \tparam MIN is the starting index in the tuple
|
/// \tparam MIN is the starting index in the tuple
|
||||||
|
@ -167,7 +167,9 @@ template<
|
|||||||
typename elements,
|
typename elements,
|
||||||
bool dont_add_current_element // = false
|
bool dont_add_current_element // = false
|
||||||
>
|
>
|
||||||
struct dimino_first_step_elements_helper :
|
struct dimino_first_step_elements_helper
|
||||||
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
||||||
|
: // recursive inheritance is too difficult for Doxygen
|
||||||
public dimino_first_step_elements_helper<
|
public dimino_first_step_elements_helper<
|
||||||
Multiply,
|
Multiply,
|
||||||
Equality,
|
Equality,
|
||||||
@ -187,6 +189,7 @@ template<
|
|||||||
typename elements
|
typename elements
|
||||||
>
|
>
|
||||||
struct dimino_first_step_elements_helper<Multiply, Equality, id, g, current_element, elements, true>
|
struct dimino_first_step_elements_helper<Multiply, Equality, id, g, current_element, elements, true>
|
||||||
|
#endif // EIGEN_PARSED_BY_DOXYGEN
|
||||||
{
|
{
|
||||||
typedef elements type;
|
typedef elements type;
|
||||||
constexpr static int global_flags = Equality<current_element, id>::global_flags;
|
constexpr static int global_flags = Equality<current_element, id>::global_flags;
|
||||||
|
@ -161,8 +161,8 @@ the z-axis.
|
|||||||
\include MatrixExponential.cpp
|
\include MatrixExponential.cpp
|
||||||
Output: \verbinclude MatrixExponential.out
|
Output: \verbinclude MatrixExponential.out
|
||||||
|
|
||||||
\note \p M has to be a matrix of \c float, \c double, \c long double
|
\note \p M has to be a matrix of \c float, \c double, `long double`
|
||||||
\c complex<float>, \c complex<double>, or \c complex<long double> .
|
\c complex<float>, \c complex<double>, or `complex<long double>` .
|
||||||
|
|
||||||
|
|
||||||
\subsection matrixbase_log MatrixBase::log()
|
\subsection matrixbase_log MatrixBase::log()
|
||||||
@ -219,9 +219,8 @@ documentation of \ref matrixbase_exp "exp()".
|
|||||||
\include MatrixLogarithm.cpp
|
\include MatrixLogarithm.cpp
|
||||||
Output: \verbinclude MatrixLogarithm.out
|
Output: \verbinclude MatrixLogarithm.out
|
||||||
|
|
||||||
\note \p M has to be a matrix of \c float, \c double, <tt>long
|
\note \p M has to be a matrix of \c float, \c double, `long
|
||||||
double</tt>, \c complex<float>, \c complex<double>, or \c complex<long
|
double`, \c complex<float>, \c complex<double>, or `complex<long double>`.
|
||||||
double> .
|
|
||||||
|
|
||||||
\sa MatrixBase::exp(), MatrixBase::matrixFunction(),
|
\sa MatrixBase::exp(), MatrixBase::matrixFunction(),
|
||||||
class MatrixLogarithmAtomic, MatrixBase::sqrt().
|
class MatrixLogarithmAtomic, MatrixBase::sqrt().
|
||||||
@ -326,9 +325,9 @@ Example:
|
|||||||
\include MatrixPower_optimal.cpp
|
\include MatrixPower_optimal.cpp
|
||||||
Output: \verbinclude MatrixPower_optimal.out
|
Output: \verbinclude MatrixPower_optimal.out
|
||||||
|
|
||||||
\note \p M has to be a matrix of \c float, \c double, <tt>long
|
\note \p M has to be a matrix of \c float, \c double, `long
|
||||||
double</tt>, \c complex<float>, \c complex<double>, or \c complex<long
|
double`, \c complex<float>, \c complex<double>, or
|
||||||
double> .
|
\c complex<long double> .
|
||||||
|
|
||||||
\sa MatrixBase::exp(), MatrixBase::log(), class MatrixPower.
|
\sa MatrixBase::exp(), MatrixBase::log(), class MatrixPower.
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ namespace internal {
|
|||||||
*
|
*
|
||||||
* Parameters:
|
* Parameters:
|
||||||
* \param mat matrix of linear system of equations
|
* \param mat matrix of linear system of equations
|
||||||
* \param Rhs right hand side vector of linear system of equations
|
* \param rhs right hand side vector of linear system of equations
|
||||||
* \param x on input: initial guess, on output: solution
|
* \param x on input: initial guess, on output: solution
|
||||||
* \param precond preconditioner used
|
* \param precond preconditioner used
|
||||||
* \param iters on input: maximum number of iterations to perform
|
* \param iters on input: maximum number of iterations to perform
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
// Public License v. 2.0. If a copy of the MPL was not distributed
|
// Public License v. 2.0. If a copy of the MPL was not distributed
|
||||||
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
#ifndef EIGEN_MATRIX_FUNCTION
|
#ifndef EIGEN_MATRIX_FUNCTION_H
|
||||||
#define EIGEN_MATRIX_FUNCTION
|
#define EIGEN_MATRIX_FUNCTION_H
|
||||||
|
|
||||||
#include "StemFunction.h"
|
#include "StemFunction.h"
|
||||||
|
|
||||||
@ -577,4 +577,4 @@ const MatrixFunctionReturnValue<Derived> MatrixBase<Derived>::cosh() const
|
|||||||
|
|
||||||
} // end namespace Eigen
|
} // end namespace Eigen
|
||||||
|
|
||||||
#endif // EIGEN_MATRIX_FUNCTION
|
#endif // EIGEN_MATRIX_FUNCTION_H
|
||||||
|
@ -324,7 +324,7 @@ public:
|
|||||||
|
|
||||||
/** \brief Compute the matrix logarithm.
|
/** \brief Compute the matrix logarithm.
|
||||||
*
|
*
|
||||||
* \param[out] result Logarithm of \p A, where \A is as specified in the constructor.
|
* \param[out] result Logarithm of \c A, where \c A is as specified in the constructor.
|
||||||
*/
|
*/
|
||||||
template <typename ResultType>
|
template <typename ResultType>
|
||||||
inline void evalTo(ResultType& result) const
|
inline void evalTo(ResultType& result) const
|
||||||
|
@ -57,8 +57,8 @@ class MatrixPowerParenthesesReturnValue : public ReturnByValue< MatrixPowerParen
|
|||||||
* \param[out] result
|
* \param[out] result
|
||||||
*/
|
*/
|
||||||
template<typename ResultType>
|
template<typename ResultType>
|
||||||
inline void evalTo(ResultType& res) const
|
inline void evalTo(ResultType& result) const
|
||||||
{ m_pow.compute(res, m_p); }
|
{ m_pow.compute(result, m_p); }
|
||||||
|
|
||||||
Index rows() const { return m_pow.rows(); }
|
Index rows() const { return m_pow.rows(); }
|
||||||
Index cols() const { return m_pow.cols(); }
|
Index cols() const { return m_pow.cols(); }
|
||||||
@ -618,8 +618,8 @@ class MatrixPowerReturnValue : public ReturnByValue< MatrixPowerReturnValue<Deri
|
|||||||
* constructor.
|
* constructor.
|
||||||
*/
|
*/
|
||||||
template<typename ResultType>
|
template<typename ResultType>
|
||||||
inline void evalTo(ResultType& res) const
|
inline void evalTo(ResultType& result) const
|
||||||
{ MatrixPower<PlainObject>(m_A.eval()).compute(res, m_p); }
|
{ MatrixPower<PlainObject>(m_A.eval()).compute(result, m_p); }
|
||||||
|
|
||||||
Index rows() const { return m_A.rows(); }
|
Index rows() const { return m_A.rows(); }
|
||||||
Index cols() const { return m_A.cols(); }
|
Index cols() const { return m_A.cols(); }
|
||||||
@ -669,8 +669,8 @@ class MatrixComplexPowerReturnValue : public ReturnByValue< MatrixComplexPowerRe
|
|||||||
* constructor.
|
* constructor.
|
||||||
*/
|
*/
|
||||||
template<typename ResultType>
|
template<typename ResultType>
|
||||||
inline void evalTo(ResultType& res) const
|
inline void evalTo(ResultType& result) const
|
||||||
{ res = (m_p * m_A.log()).exp(); }
|
{ result = (m_p * m_A.log()).exp(); }
|
||||||
|
|
||||||
Index rows() const { return m_A.rows(); }
|
Index rows() const { return m_A.rows(); }
|
||||||
Index cols() const { return m_A.cols(); }
|
Index cols() const { return m_A.cols(); }
|
||||||
|
@ -20,8 +20,8 @@ namespace Eigen {
|
|||||||
* e.g. \f$ 1 + 3x^2 \f$ is stored as a vector \f$ [ 1, 0, 3 ] \f$.
|
* e.g. \f$ 1 + 3x^2 \f$ is stored as a vector \f$ [ 1, 0, 3 ] \f$.
|
||||||
* \param[in] x : the value to evaluate the polynomial at.
|
* \param[in] x : the value to evaluate the polynomial at.
|
||||||
*
|
*
|
||||||
* <i><b>Note for stability:</b></i>
|
* \note for stability:
|
||||||
* <dd> \f$ |x| \le 1 \f$ </dd>
|
* \f$ |x| \le 1 \f$
|
||||||
*/
|
*/
|
||||||
template <typename Polynomials, typename T>
|
template <typename Polynomials, typename T>
|
||||||
inline
|
inline
|
||||||
@ -67,8 +67,8 @@ T poly_eval( const Polynomials& poly, const T& x )
|
|||||||
* by degrees i.e. poly[i] is the coefficient of degree i of the polynomial
|
* by degrees i.e. poly[i] is the coefficient of degree i of the polynomial
|
||||||
* e.g. \f$ 1 + 3x^2 \f$ is stored as a vector \f$ [ 1, 0, 3 ] \f$.
|
* e.g. \f$ 1 + 3x^2 \f$ is stored as a vector \f$ [ 1, 0, 3 ] \f$.
|
||||||
*
|
*
|
||||||
* <i><b>Precondition:</b></i>
|
* \pre
|
||||||
* <dd> the leading coefficient of the input polynomial poly must be non zero </dd>
|
* the leading coefficient of the input polynomial poly must be non zero
|
||||||
*/
|
*/
|
||||||
template <typename Polynomial>
|
template <typename Polynomial>
|
||||||
inline
|
inline
|
||||||
|
@ -931,7 +931,7 @@ class BlockSparseMatrix : public SparseMatrixBase<BlockSparseMatrix<_Scalar,_Blo
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \returns the starting position of the block <id> in the array of values
|
* \returns the starting position of the block \p id in the array of values
|
||||||
*/
|
*/
|
||||||
Index blockPtr(Index id) const
|
Index blockPtr(Index id) const
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user