
namespace Eigen {

/** \defgroup Unsupported_modules Unsupported modules
  *
  * The unsupported modules are contributions from various users. They are
  * provided "as is", without any support. Nevertheless, they are subject to be
  * included in Eigen in the future.
  */

// please list here all unsupported modules

/** \ingroup Unsupported_modules
  * \defgroup AdolcForward_Module Adolc forward module */

/** \ingroup Unsupported_modules
  * \defgroup AlignedVector3_Module Aligned vector3 module */

/** \ingroup Unsupported_modules
  * \defgroup AutoDiff_Module Auto Diff module */

/** \ingroup Unsupported_modules
  * \defgroup BVH_Module BVH module */

/** \ingroup Unsupported_modules
  * \defgroup IterativeSolvers_Module Iterative solvers module */

/** \ingroup Unsupported_modules
  * \defgroup MatrixFunctions_Module Matrix functions module */

/** \ingroup Unsupported_modules
  * \defgroup MoreVectorization More vectorization module */

} // namespace Eigen
