
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 */

/** \ingroup Unsupported_modules
  * \defgroup AlignedVector3_Module */

/** \ingroup Unsupported_modules
  * \defgroup AutoDiff_Module */

/** \ingroup Unsupported_modules
  * \defgroup BVH_Module */

/** \ingroup Unsupported_modules
  * \defgroup IterativeSolvers_Module */

/** \ingroup Unsupported_modules
  * \defgroup MatrixFunctions_Module */

/** \ingroup Unsupported_modules
  * \defgroup NonLinearOptimization_Module */

/** \ingroup Unsupported_modules
  * \defgroup NumericalDiff_Module */

/** \ingroup Unsupported_modules
  * \defgroup MoreVectorization */

} // namespace Eigen
