Files
deeplearning4j--deeplearning4j/libnd4j/include/helpers/cpu/loops/ReductionLoops_long.cpp
T
2026-07-13 12:47:05 +08:00

62 lines
2.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ******************************************************************************
*
*
* This program and the accompanying materials are made available under the
* terms of the Apache License, Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0.
*
* See the NOTICE file distributed with this work for additional
* information regarding copyright ownership.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
* SPDX-License-Identifier: Apache-2.0
******************************************************************************/
//
// @author raver119@gmail.com
//
#ifndef LIBND4J_REDUCTIONLOOPS_LONG_CPP
#define LIBND4J_REDUCTIONLOOPS_LONG_CPP
#include "ReductionLoops.hpp"
using namespace simdOps;
#include <types/types.h>
namespace sd {
template <typename X, typename Z>
template <typename OpType>
void ReductionLongLoops<X, Z>::innerloopReduce(sd::memory::Workspace* workspace, const X* x,
const sd::LongType* xShapeInfo, Z* z, const sd::LongType* zShapeInfo,
const LongType* dims, X* extraParams) {
#ifndef SD_LOOPS_INLINED
ReductionLoops<X, Z, X>::template loopReduce<OpType>(workspace, x, xShapeInfo, z, zShapeInfo, dims, extraParams);
#endif
}
template <typename X, typename Z>
void ReductionLongLoops<X, Z>::wrapper(int opNum, sd::memory::Workspace* workspace, const X* x,
const sd::LongType* xShapeInfo, Z* z, const sd::LongType* zShapeInfo,
const LongType* dims, X* extraParams) {
#ifndef SD_LOOPS_INLINED
DISPATCH_BY_OPNUM_TT(innerloopReduce, PARAMS(workspace, x, xShapeInfo, z, zShapeInfo, dims, extraParams),
REDUCE_LONG_OPS);
#endif
}
// Template instantiations for ReductionLongLoops are generated by TemplateProcessing.cmake
// This includes both class instantiations and member function templates (innerloopReduce<OpType>)
// for all type combinations in SD_COMMON_TYPES × SD_LONG_TYPES.
// No manual BUILD_DOUBLE_TEMPLATE needed here to avoid duplicate instantiation errors.
} // namespace sd
#endif // LIBND4J_REDUCTIONLOOPS_LONG_CPP