#ifndef EIGEN_ARRAY_MODULE_H
#define EIGEN_ARRAY_MODULE_H

#include "Core"

#include "src/Core/util/DisableMSVCWarnings.h"

namespace Eigen {

/** \defgroup Array_Module Array module
  * This module provides several handy features to manipulate matrices as simple array of values.
  * In addition to listed classes, it defines various methods of the Cwise interface
  * (accessible from MatrixBase::cwise()), including:
  *  - matrix-scalar sum,
  *  - coeff-wise comparison operators,
  *  - sin, cos, sqrt, pow, exp, log, square, cube, inverse (reciprocal).
  *
  * This module also provides various MatrixBase methods, including:
  *  - boolean reductions: \ref MatrixBase::all() "all", \ref MatrixBase::any() "any", \ref MatrixBase::count() "count",
  *  - \ref MatrixBase::Random() "random matrix initialization",
  *  - a \ref MatrixBase::select() "select" function mimicking the trivariate ?: operator,
  *  - \ref MatrixBase::colwise() "column-wise" and \ref MatrixBase::rowwise() "row-wise" reductions,
  *  - \ref MatrixBase::reverse() "matrix reverse",
  *  - \ref MatrixBase::lpNorm() "generic matrix norm".
  *
  * \code
  * #include <Eigen/Array>
  * \endcode
  */

#include "src/Array/CwiseOperators.h"
#include "src/Array/Functors.h"
#include "src/Array/BooleanRedux.h"
#include "src/Array/Select.h"
#include "src/Array/VectorwiseOp.h"
#include "src/Array/Random.h"
#include "src/Array/Norms.h"
#include "src/Array/Replicate.h"
#include "src/Array/Reverse.h"

} // namespace Eigen

#include "src/Core/util/EnableMSVCWarnings.h"

#endif // EIGEN_ARRAY_MODULE_H
