// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// SPDX-FileCopyrightText: The Eigen Authors
// SPDX-License-Identifier: MPL-2.0
//
// Forwarding header: the top-level unsupported/ directory was renamed
// to contrib/ in Eigen 5.x. New code should use
//   #include <contrib/Eigen/AdolcForward>
// directly. This shim preserves the legacy include path.

#ifndef EIGEN_UNSUPPORTED_ADOLCFORWARD_FORWARD_H
#define EIGEN_UNSUPPORTED_ADOLCFORWARD_FORWARD_H

#include "../../contrib/Eigen/AdolcForward"  // IWYU pragma: export

#endif  // EIGEN_UNSUPPORTED_ADOLCFORWARD_FORWARD_H
