// This file is part of Eigen, a lightweight C++ template library // for linear algebra. // // Copyright (C) 2017 Gael Guennebaud <[email protected]> // // 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/. #ifndef EIGEN_ARCH_CONJ_HELPER_H #define EIGEN_ARCH_CONJ_HELPER_H #define EIGEN_MAKE_CONJ_HELPER_CPLX_REAL(PACKET_CPLX, PACKET_REAL) … // IWYU pragma: private #include "../../InternalHeaderCheck.h" namespace Eigen { namespace internal { template <bool Conjugate> struct conj_if; template <> struct conj_if<true> { … }; template <> struct conj_if<false> { … }; // Generic Implementation, assume scalars since the packet-version is // specialized below. template <typename LhsType, typename RhsType, bool ConjLhs, bool ConjRhs> struct conj_helper { … }; conj_helper<LhsScalar, RhsScalar, true, true>; // Implementation with equal type, use packet operations. conj_helper<Packet, Packet, ConjLhs, ConjRhs>; conj_helper<Packet, Packet, true, true>; } // namespace internal } // namespace Eigen #endif // EIGEN_ARCH_CONJ_HELPER_H