/* ****************************************************************************** * * * 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 namespace sd { template template void ReductionLongLoops::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::template loopReduce(workspace, x, xShapeInfo, z, zShapeInfo, dims, extraParams); #endif } template void ReductionLongLoops::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) // 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