// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// 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/.
// SPDX-FileCopyrightText: The Eigen Authors
// SPDX-License-Identifier: MPL-2.0

#ifndef EIGEN_GPU_MODULE_H
#define EIGEN_GPU_MODULE_H

#include "../../Eigen/Core"
#include "../../Eigen/SparseCore"

#include "../../Eigen/src/Core/util/DisableStupidWarnings.h"

/** \defgroup GPU_Module GPU module
 *
 * GPU-accelerated dense linear algebra using NVIDIA CUDA libraries
 * (cuSOLVER and cuBLAS).
 *
 * This module provides explicit GPU solver classes that coexist with Eigen's
 * CPU solvers. Unlike the LAPACKE dispatch (which replaces the CPU
 * implementation globally), GPU classes are separate types the user
 * instantiates by choice:
 *
 * \code
 * #define EIGEN_USE_GPU
 * #include <contrib/Eigen/GPU>
 *
 * // CPU path (unchanged)
 * Eigen::LLT<Eigen::MatrixXd> llt_cpu(A);
 *
 * // GPU path (explicit)
 * Eigen::gpu::LLT<double> llt_gpu(A);   // L stays on device
 * auto X = llt_gpu.solve(B);            // only B transferred per solve
 * \endcode
 *
 * Requires CUDA 11.4+.
 */

#ifdef EIGEN_USE_GPU
// IWYU pragma: begin_exports
#include "src/GPU/FwdDecl.h"
#include "src/GPU/Meta.h"
#include "src/GPU/type_traits.h"
#include "src/GPU/DeviceScalar.h"
#include "src/GPU/DeviceMatrix.h"
#include "src/GPU/GpuContext.h"
#include "src/GPU/DeviceExpr.h"
#include "src/GPU/DeviceBlasExpr.h"
#include "src/GPU/DeviceSolverExpr.h"
#include "src/GPU/DeviceDispatch.h"
#include "src/GPU/GpuSolverContext.h"
#include "src/GPU/GpuLLT.h"
#include "src/GPU/GpuLU.h"
#include "src/GPU/GpuQR.h"
#include "src/GPU/GpuSVD.h"
#include "src/GPU/GpuEigenSolver.h"
#include "src/GPU/CuFftSupport.h"
#include "src/GPU/GpuFFT.h"
#include "src/GPU/CuSparseSupport.h"
#ifdef EIGEN_SPARSECORE_MODULE_H
#include "src/GPU/GpuSparseContext.h"
#endif
#if defined(EIGEN_CUDSS) && defined(EIGEN_SPARSECORE_MODULE_H)
#include "src/GPU/CuDssSupport.h"
#include "src/GPU/GpuSparseSolverBase.h"
#include "src/GPU/GpuSparseLLT.h"
#include "src/GPU/GpuSparseLDLT.h"
#include "src/GPU/GpuSparseLU.h"
#endif
// IWYU pragma: end_exports
#endif

#include "../../Eigen/src/Core/util/ReenableStupidWarnings.h"

#endif  // EIGEN_GPU_MODULE_H
