// Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors. // All Rights Reserved. See the top-level LICENSE and NOTICE files for details. // // SPDX-License-Identifier: BSD-2-Clause // // This file is part of CEED: http://github.com/ceed #include #include #include "ceed-opt.h" //------------------------------------------------------------------------------ // Tensor Contract Core loop //------------------------------------------------------------------------------ static inline int CeedTensorContractApply_Core_Opt(CeedTensorContract contract, CeedInt A, CeedInt B, CeedInt C, CeedInt J, const CeedScalar *restrict t, CeedTransposeMode t_mode, const CeedInt add, const CeedScalar *restrict u, CeedScalar *restrict v) { CeedInt t_stride_0 = B, t_stride_1 = 1; if (t_mode == CEED_TRANSPOSE) { t_stride_0 = 1; t_stride_1 = J; } for (CeedInt a=0; a