blob: 9cf045711037f6dd25a6324f46563ddf55aadb28 [file]
// 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_FWD_DECL_H
#define EIGEN_GPU_FWD_DECL_H
// IWYU pragma: private
#include "./InternalHeaderCheck.h"
namespace Eigen {
namespace gpu {
class Context;
enum class GpuOp;
namespace internal {
class DeviceBuffer;
/** \brief Describes GPU device expression types.
*
* Specializations report the expression's scalar type, its transpose op, and
* how to reach the underlying matrix and deferred scalar. They live in
* DeviceExpr.h; this declaration is what the query aliases in type_traits.h
* are written against.
*/
template <typename Expr>
struct device_expr_traits;
} // namespace internal
template <typename Scalar_>
class DeviceMatrix;
template <typename Scalar_>
class DeviceScalar;
template <typename Scalar_, int UpLo_>
class LLT;
template <typename Scalar_>
class LU;
template <typename Scalar_>
class QR;
template <typename Scalar_>
class AdjointView;
template <typename Scalar_>
class TransposeView;
template <typename Scalar_>
class Assignment;
template <typename Lhs, typename Rhs>
class GemmExpr;
template <typename Inner>
class Scaled;
template <typename Scalar_>
class DeviceAddExpr;
template <typename Scalar_>
class DeviceScaledDevice;
template <typename Scalar_, int UpLo_>
class LltSolveExpr;
template <typename Scalar_>
class LuSolveExpr;
template <typename Scalar_, int UpLo_>
class LLTView;
template <typename Scalar_>
class LUView;
template <typename Scalar_, int UpLo_>
class TriangularView;
template <typename Scalar_, int UpLo_>
class SelfAdjointView;
template <typename Scalar_, int UpLo_>
class ConstSelfAdjointView;
template <typename Scalar_, int UpLo_>
class TrsmExpr;
template <typename Scalar_, int UpLo_>
class SymmExpr;
template <typename Scalar_, int UpLo_>
class SyrkExpr;
template <typename Scalar_>
class SparseContext;
template <typename Scalar_>
class DeviceSparseView;
template <typename Scalar_>
class SpMVExpr;
} // namespace gpu
} // namespace Eigen
#endif // EIGEN_GPU_FWD_DECL_H