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

/** \ingroup Unsupported_modules
  * \defgroup FFT_Module */

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

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

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

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

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

/** \ingroup Unsupported_modules
  * \defgroup Skyline_Module */

} // namespace Eigen
