/* ****************************************************************************** * * SummaryStats operations - uses SD_COMMON_TYPES and SD_FLOAT_TYPES * ******************************************************************************/ // Selective rendering - MUST be included before types.h to define HAS_* flags #include #include #include #include #include #include #include #include #include //////////////////////////////////////////////////////////////////////// void NativeOpExecutioner::execSummaryStats(sd::LaunchContext *lc, int opNum, const void *hX, sd::LongType *hXShapeInfo, const void *dX, sd::LongType *dXShapeInfo, void *extraParams, void *hZ, sd::LongType *hZShapeInfo, void *dZ, sd::LongType *dZShapeInfo, bool biasCorrected) { auto xType = sd::ArrayOptions::dataType(hXShapeInfo); auto zType = sd::ArrayOptions::dataType(hZShapeInfo); BUILD_DOUBLE_SELECTOR(xType, zType, functions::summarystats::SummaryStatsReduce, ::exec(opNum, biasCorrected, const_cast(hX), hXShapeInfo, extraParams, hZ, hZShapeInfo, nullptr, 1), SD_COMMON_TYPES, SD_FLOAT_TYPES); } //////////////////////////////////////////////////////////////////////// void NativeOpExecutioner::execSummaryStatsScalar(sd::LaunchContext *lc, int opNum, const void *hX, sd::LongType *hXShapeInfo, const void *dX, sd::LongType *dXShapeInfo, void *extraParams, void *hZ, sd::LongType *hZShapeInfo, void *dZ, sd::LongType *dZShapeInfo, bool biasCorrected) { auto xType = sd::ArrayOptions::dataType(hXShapeInfo); auto zType = sd::ArrayOptions::dataType(hZShapeInfo); BUILD_DOUBLE_SELECTOR(xType, zType, functions::summarystats::SummaryStatsReduce, ::execScalar(opNum, biasCorrected, const_cast(hX), hXShapeInfo, extraParams, hZ, hZShapeInfo), SD_COMMON_TYPES, SD_FLOAT_TYPES); } //////////////////////////////////////////////////////////////////////// void NativeOpExecutioner::execSummaryStats(sd::LaunchContext *lc, int opNum, const void *hX, sd::LongType *hXShapeInfo, const void *dX, sd::LongType *dXShapeInfo, void *extraParams, void *hZ, sd::LongType *hZShapeInfo, void *dZ, sd::LongType *dZShapeInfo, sd::LongType *dimension, sd::LongType dimensionLength, sd::LongType *tadShapeInfo, sd::LongType *tadOffsets, bool biasCorrected) { auto xType = sd::ArrayOptions::dataType(hXShapeInfo); auto zType = sd::ArrayOptions::dataType(hZShapeInfo); BUILD_DOUBLE_SELECTOR( xType, zType, functions::summarystats::SummaryStatsReduce, ::exec(opNum, biasCorrected, const_cast(hX), hXShapeInfo, extraParams, hZ, hZShapeInfo, dimension, dimensionLength), SD_COMMON_TYPES, SD_FLOAT_TYPES); }